我有以下正则表达式,我认为它应该匹配任何非字母数字、“!”、“?”或“.”的字符
re.compile('[^A-z ?!.]')
但是,我在 iPython 中得到以下奇怪的结果:
In [21]: re.sub(a, ' ', 'Hey !$%^&*.#$%^&.')
Out[21]: 'Hey ! ^ . ^ .'
当我转义“.”时,结果是一样的在正则表达式中。
如何匹配插入符号以便将其从字符串中删除?
最佳答案
您的正则表达式有错误。请注意,a
和 z
的大小写很重要。 A-z
包括 ASCII 值 65 (A) 和 122 (Z) 之间的所有字符,其中包括脱字符号(ASCII 代码 94)。
试试这个:
re.compile('[^A-Za-z ?!.]')
示例:
import re
regex = re.compile('[^A-Za-z ?!.]')
result = regex.sub(' ', 'Hey !$%^&*.#$%^&.')
print result
结果:
Hey ! . .
关于python - Python 正则表达式中插入符号匹配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3524867/