我有以下正则表达式,我认为它应该匹配任何不是字母数字的字符,'!'、'?' 或 '.'
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 ! . .
