Skip to main content
 首页 » 编程设计

python之非 ASCII 字符的正则表达式

2025年05月04日27mfryf

考虑在 Python 3 中使用正则表达式的这个片段:

>>> t = "Meu cão é #paraplégico$." 
>>> re.sub("[^A-Za-z0-9 ]","",t,flags=re.UNICODE) 
'Meu co  paraplgico' 

为什么它会删除非 ASCII 字符?我在没有标志的情况下尝试过,一切都一样。

作为奖励,任何人都可以在 Python 2.7 上进行这项工作吗?

请您参考如下方法:

您正在用空白 ("") 替换非字母数字字符 ([^A-Za-z0-9 ])。非 ASCII 字符不在 A-Z、a-z 或 0-9 之间,因此它们被替换。

你可以像这样匹配所有单词字符:

>>> t = "Meu cão é #paraplégico$." 
>>> re.sub("[^\w ]","",t, flags=re.UNICODE) 
>>> 'Meu cão é paraplégico' 

或者您可以像这样将字符添加到您的正则表达式中:[^A-Za-z0-9ãé]。