首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Unicode的Python和正则表达式

使用Unicode的Python和正则表达式
EN

Stack Overflow用户
提问于 2008-12-26 14:40:05
回答 1查看 97.6K关注 0票数 87

我需要从字符串‘بِسْمِاللَّهِالرَّحْمَٰنِالرَّحِيمِ’中删除一些Unicode符号。

我知道他们肯定存在于此。我试过了:

代码语言:javascript
复制
re.sub('([\u064B-\u0652\u06D4\u0670\u0674\u06D5-\u06ED]+)', '', 'بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ')

但它不起作用。字符串保持不变。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2008-12-26 14:57:58

你使用的是python 2.x还是3.0?

如果您使用的是2.x,请尝试将正则表达式字符串设置为unicode转义字符串,并使用'u‘。因为它是正则表达式,所以使用'r‘使您的正则表达式字符串成为原始字符串是一种很好的做法。此外,将整个模式放在括号中也是多余的。

代码语言:javascript
复制
re.sub(ur'[\u064B-\u0652\u06D4\u0670\u0674\u06D5-\u06ED]+', '', ...)

http://docs.python.org/tutorial/introduction.html#unicode-strings

编辑:

对unicode正则表达式使用re.UNICODE/re.U/(?u)标志也是一种好的做法,但它只影响字符类别名,如\w或\b,此模式不使用任何别名,因此不会受到影响。

票数 110
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/393843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档