当前位置: 首页 > 面试题库 >

Python和带Unicode的正则表达式

法风畔
2023-03-14
问题内容

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

我知道他们肯定在这里。我试过了:

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

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


问题答案:

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

如果您使用的是2.x,请尝试使用“ u”使正则表达式字符串成为unicode-escape字符串。由于它是正则表达式,因此最好使用“
r”将正则表达式字符串设置为原始字符串。另外,将整个模式放在括号中也是多余的。

re.sub(ur'[\u064B-\u0652\u06D4\u0670\u0674\u06D5-\u06ED]+', '', ...)

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

编辑:

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



 类似资料:
  • 问题内容: 我有一个脚本,可以分析电视剧集的文件名(例如show.name.s01e02.avi),获取剧集的名称(从www.thetvdb.com API),然后自动将其重命名为更好的名称(显示名-[01x02 ] .avi) 该脚本可以正常工作,直到您尝试在具有Unicode显示名称的文件上使用该脚本为止(我从未真正考虑过这一点,因为我拥有的所有文件都是英文的,所以大部分都属于) 如何允许正则

  • 问题内容: 如何在JavaScript中使用支持Unicode的正则表达式? 例如,应该有类似的东西可以匹配Letters或Marks类别中的任何代码点(而不仅仅是ASCII的),并且希望具有这样的过滤器来标点,等等。 问题答案: ES 6的情况 即将发布的ECMAScript语言规范,版本6,包含可识别Unicode的正则表达式。必须使用u正则表达式上的修饰符启用支持。请参阅ES6中支持Unic

  • 问题内容: 我有一组不同语言的单词(英语,波兰语,芬兰语,俄语等),需要检查一下,用大写字母写的是什么。 我尝试使用简单的正则表达式:,但仅匹配拉丁字母,然后添加了俄语大写字母:。 但是,许多 带有变音符号的unicode字母 仍然存在。如何将 所有 大写字母添加到正则表达式中? 可以不使用符号枚举就可以做到这一点吗? PS我知道,如何在Ruby中做到这一点,但现在我正在使用Python。 问题答

  • 问题内容: 我已经阅读了Stackoverflow上的其他问题,但还没有结束。抱歉,如果已经可以回答,但是我没有任何建议在那里工作。 一切都很好,然后我尝试使用其中包含挪威字符的内容(或更像unicode的内容): 如何匹配øæå等典型的unicode字符?我希望能够同时在上述标记组和文件名标记组中匹配这些字符。 问题答案: 您需要指定标志, 并 使用前缀将您的字符串输入为Unicode字符串:

  • 问题内容: 好的,我整天都在阅读正则表达式,但仍然不太了解它。我正在尝试做的是验证名称,但是我在互联网上可以找到的功能只能使用,而我需要接受的字符除外。 我基本上需要一个正则表达式来检查名称至少是两个单词,并且不包含数字或特殊字符,例如,但是这些单词可以包含æ,é,Â等字符。 可接受的名称的示例为:“ JohnElkjærd”或“AndréSvenson”。 不可接受的名称为:“ Hans ”,“

  • 问题内容: 我得到了一个包含多行纯utf-8文本的文件。如下所示,按中文,是中文。 文件本身以utf-8格式保存。文件名是xx.txt 这是我的python代码,env是python2.7 这里有问题的是我没有结果。 我想从这里的十进制字符串中获得。 为什么此代码不起作用?谁能向我解释,我什么也没有。 问题答案: 您的代码有几个问题。首先,您应该使用。另外,添加re.UNICODE标志也很不错(尽