在下面的正则表达式中,我希望将字符串中的每个字符替换为'X',但它没有起作用。
在Python 2.7中:
在Python 3.4中:
在Python 2.7中:
>>> import re
>>> re.sub(u"[a-zA-Z]","X","dfäg")
'XX\xc3\xa4X'
或者
>>> re.sub("[a-zA-Z]","X","dfäg",re.UNICODE)
u'XX\xe4X'
在Python 3.4中:
>>> re.sub("[a-zA-Z]","X","dfäg")
'XXäX'
有没有办法“配置”[a-zA-Z]模式来匹配“ä”,“ü”等字符?如果无法这样做,如何创建类似的字符范围模式,包括Unicode字符在正常的“完整字母表”范围内?我的意思是,在德语这样的语言中,“ä”将被放置在字母表中靠近“a”的位置,因此人们希望它包含在“a-z”范围内。
\w
应该就够了。 - Wiktor Stribiżew\w
将排除任何不在集合[A-Za-z]
中的字母。我在这里尝试过了(https://regex101.com/r/rR2hZ1/1)。 - npintiu
标志的\w
会将\w
从意味着[A-Za-z0-9_]
更改为包括\p{L}
的其他内容。奇怪的是,在Python中似乎不支持单独使用\p{L}
。 - npinti(?![\d_])\w
。 - Wiktor Stribiżew\w
可以实现你想要的功能。 - npinti