2024-09-29 19:30:17 发布
网友
考虑一下在Python 3中使用正则表达式的代码片段:
>>> t = "Meu cão é #paraplégico$." >>> re.sub("[^A-Za-z0-9 ]","",t,flags=re.UNICODE) 'Meu co paraplgico'
为什么要删除非ASCII字符?我试过没有国旗,一切都一样。在
另外,还有人能在Python2.7上实现这一点吗?在
您正在将非字母数字字符([^A-Za-z0-9 ])替换为空白("")。非ASCII字符不在A-Z、A-Z或0-9之间,因此它们被替换。在
[^A-Za-z0-9 ]
""
您可以像这样匹配所有单词字符:
>>> t = "Meu cão é #paraplégico$." >>> re.sub("[^\w ]","",t, flags=re.UNICODE) >>> 'Meu cão é paraplégico'
或者您可以将这些字符添加到正则表达式中,如下所示:[^A-Za-z0-9ãé ]。在
[^A-Za-z0-9ãé ]
[In 1]: import regex [In 2]: t = u"Meu cão é #paraplégico$." [In 3]: regex.sub(r"[^\p{Alpha} ]","",t,flags=regex.UNICODE) [In 4]: print(regex.sub(r"[^\p{Alpha} ]","",t,flags=regex.UNICODE))
Meu cão é paraplégico
我通过切换到regex库(从PyPI)解决了这个问题。在
然后regex命令变成:
regex.sub(ur"[^\p{L}\p{N} ]+", u"", t)
您正在将非字母数字字符(
[^A-Za-z0-9 ]
)替换为空白(""
)。非ASCII字符不在A-Z、A-Z或0-9之间,因此它们被替换。在您可以像这样匹配所有单词字符:
或者您可以将这些字符添加到正则表达式中,如下所示:
[^A-Za-z0-9ãé ]
。在我通过切换到regex库(从PyPI)解决了这个问题。在
然后regex命令变成:
相关问题 更多 >
编程相关推荐