为什么以下正则表达式在Python中不起作用?

时间:2013-10-02 18:43:48

标签: python regex

我试图在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* ')

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

欢迎任何建议。 感谢

1 个答案:

答案 0 :(得分: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等工具(还有许多其他工具)可用于测试和调试正则表达式。