2016-12-16 70 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做的,它会工作,没有额外的效果。