python - 在 Python 中正确使用 regexp 语法

标签 python regex

我正在使用正则表达式来查找由连字符分隔的 8 位数字表示的任何和所有模式,如下所示:

(\d{8}\-\d{8}\)

我把它放在 rubular.com(在线正则表达式编辑器)上,它似乎工作正常。但是,当我在我的 Python 代码中使用它时,出现错误:SyntaxError: EOL while scanning string literal。我试着去掉结尾的反斜杠。但是,虽然错误似乎已经消失,但正则表达式没有找到模式。我有一个字符串,其中嵌入了以下模式:

output = "... 57867983 - 87995423 ...."

我正在使用以下代码:

include re

regex = re.compile(r"\d{8}\-\d{8}\")

re.search(regex, outuput)

正则表达式不返回输出字符串中的模式。有人可以告诉我我做错了什么吗?谢谢!

这是我要匹配的实际字符串,因为它出现在返回的字符串中:

Hash\r\n\t\t01773857 - 90349912\r\n\tWork with

我是否需要考虑 8 位数字和我要匹配的连字符之前的任何字母数字字符?

最佳答案

你的最后一个 "\ 转义了

你想要:

regex = re.compile(r"\d{8}\-\d{8}")

编辑 - 根据您更新的问题,您似乎需要在破折号之前考虑空格:

regex = re.compile(r"\d{8}\s*\-\s*\d{8}")

关于python - 在 Python 中正确使用 regexp 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15622807/

相关文章:

python - 是否可以使用 Python 将二进制文件发布到 usenet?

javascript - 正则表达式性能问题

javascript - 如何从搜索中排除包含转义字符的整个单词?

regex - RegexBuddy 中的 "steps"是什么?

regex - 我的正则表达式匹配太多。我该如何让它停止?

python - 当在Python中的步骤中给出IP地址时增加IP地址

python - 如何通过 Python 将 Google Cloud Storage 中的文件从一个存储桶移动到另一个存储桶

python - python 获取一个csv字段中2个数字的平均值

python - 生成自定义 pyunit 报告

java - 未封闭的字符类错误?