2016-12-16 88 views
0

我想我的Python腳本2轉換到Python 3,我們怎麼辦使用Unicode正則表達式?的Unicode正則表達式在Python 3(在Python 2代碼)

這是我在Python 2其中工程它取代了引號«和»:

text = re.sub(ur'"(.*?)"', ur'«\1»', text)

我有一些非常複雜的,其中「UR」說得那麼容易。不過,這並不在Python 3工作:

text = re.sub(ur'ه\sایم([\]\.،\:»\)\s])', ur'ه\u200cایم\1', text)

+0

所有字符串都是Unicode默認情況下,你不需要'在Python 3 u'。省略「u」前綴。 –

+0

@克勞斯D.國際海事組織不是重複。引用問題就是Python 2.x的 – mkiever

+0

感謝。刪除'u'解決了這個問題。 –

回答

1

在Python3所有字符串默認都是Unicode的。只要刪除u,你應該沒問題。

在Python2字符串是默認的字節列表,所以我們使用u將它們標記爲unicode字符串。

0

因爲Python 3.0,語言特性包含 Unicode字符的STR類型,這意味着使用創建的任何字符串「unicode的石頭!」, 「unicode的石頭!」,或三引號字符串語法存儲爲 Unicode。

Unicode HOWTO此文檔將幫助您。

如此,你只是做希望每次Python2做的,它會工作,沒有額外的效果。