正则表达式在测试中有效,但在Python中并不总是有效

时间:2018-10-13 09:30:21

标签: python regex match

我想使用模块re将票证标题中的票证ID与Python中的正则表达式进行匹配。模式真的很简单:

(\w+-\d+)

在大多数情况下(在regexr.com上),甚至在实际程序中,它都可以完美地在测试中工作-但仅当票证标题立即以票证ID开头时。

一旦前面有其他任何内容(例如“ [SomeTag]”),Python实现将不再提供任何匹配项,即使在regexr.com上,它在这种情况下也可以正常运行。

我已经考虑了很长时间,尝试了各种变化,但无济于事。在此问题上的任何帮助,我将非常感谢。

2 个答案:

答案 0 :(得分:2)

也许您使用的是re.match()而不是re.search()

re.match()

  

如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。如果字符串与模式不匹配,则返回None。

re.search()

  

扫描字符串以查找正则表达式模式产生匹配项的第一个位置,然后返回相应的匹配对象。

答案 1 :(得分:0)

听起来您正在使用re.match。这只会匹配字符串开头的模式。要在字符串中的任何位置匹配模式,请使用re.search