我正在使用此re.match调用仅获取“适当的”字符串:

re.match('^[A-Za-z0-9\.\,\:\;\!\?\(\)]', str)


但是我也遇到了一些垃圾,例如#_。那怎么可能?我究竟做错了什么?

谢谢!

最佳答案

使用它来检查所有字符,直到字符串结尾,否则,您的模式将只检查第一个字符:

re.match('^[A-Za-z0-9.,:;!?()]+$', str)


请注意,字符类不包含空格,换行符或制表符。您可以像这样添加它们:

re.match('^[A-Za-z0-9.,:;!?()\s]+$', str)


如果要允许空字符串,可以将+量词替换为*

关于python - Python仅重新匹配字符,数字和一些标点符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18594583/

10-14 20:57
查看更多