1

我正在尝试在 python 中使用一些正则表达式进行模式匹配。我正在看一个非常简单的例子,但这并不像我预期的那样工作。片段如下。我希望它打印“匹配”,但它没有

>>> line="123 a bcdef12"
>>> data_headers = re.compile('.*a bc.* ')
>>> if data_headers.match(line):
...     print "match"
... 
>>> 

我还尝试了以下方法:

>>> data_headers = re.compile(' a bc* ')
>>> data_headers = re.compile('.*a bc* ')

但两者都没有找到任何匹配项。

欢迎任何建议。谢谢

4

1 回答 1

2

最后的空格是阻止它匹配的原因:

>>> import re
>>> re.match(".*a bc.* ", "123 a bcdef12")
None
>>> re.match(".*a bc.*", "123 a bcdef12")
<_sre.SRE_Match object at 0x7fdd6c462b90>

您可能会发现诸如debuggex 之类的工具(还有很多其他工具)对测试和调试正则表达式很有用。

于 2013-10-02T18:50:41.650 回答