Python仅重新匹配字符、数字和一些标点符号

标签 python regex

我使用这个 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仅重新匹配字符、数字和一些标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18594583/

相关文章:

javascript - 正则表达式问题 - HTML 标签内容

python - 找不到文件时如何继续循环

python - 我如何将 numpy 数组转换为 pandas 数据框

Javascript 正则表达式否定后视

java - 清理未修剪的字符串空白

regex - 提取短语后的所有文本,然后在每行的开头添加文件名?

python - 在管理界面显示用户组?

python - 在 Azure 函数中使用自己的包(工件)?

python - 聚类问题

java - 模式和匹配器在 Java 中不起作用