python - Python 正则表达式中插入符号匹配问题

标签 python regex

我有以下正则表达式,我认为它应该匹配任何非字母数字、“!”、“?”或“.”的字符

re.compile('[^A-z ?!.]')

但是,我在 iPython 中得到以下奇怪的结果:

In [21]: re.sub(a, ' ', 'Hey !$%^&*.#$%^&.')
Out[21]: 'Hey !  ^  .   ^ .'

当我转义“.”时,结果是一样的在正则表达式中。

如何匹配插入符号以便将其从字符串中删除?

最佳答案

您的正则表达式有错误。请注意,az 的大小写很重要。 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/

相关文章:

python - 如何使用Python向带有问题的脚本输入参数?

python - 使用子进程打开 Windows 快捷方式文件 `.lnk`

Python - 正则表达式查找所有重复模式,后跟可变长度的字符

javascript - 将字符串作为正则表达式模式传递给 String.prototype.replace

regex - 跨行替换正则表达式,保留换行符?

python - 使用 python bash float 数学

python - 将文件中的一行文本加载到 Kivy 标签

c# - 使用 C# 正则表达式解析域名?

python - 使用Regex从Elasticsearch中的json输出中提取电子邮件地址

python - 来自不同模型的 Concat QuerySets