>> re.sub("[^A-Za-z0-9 ]","",t,flags-6ren">
gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:43:04 28 4
gpt4 key购买 nike

考虑在 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ãé]

关于python - 非 ASCII 字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15223398/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com