python常客,编译和匹配

时间:2014-01-09 13:15:22

标签: python regex

我需要找到与正则表达式匹配的单词中的所有字符串。我需要先编译它然后打印出来,这就是我所做的:

prog = re.compile(pattern)
result = prog.match(string)
for i in result:
    print i

它会引发错误。我应该改变什么?

2 个答案:

答案 0 :(得分:3)

SRE_Match函数返回的match不可迭代。您可能想要遍历所有匹配项的列表。在这种情况下,您必须使用findall这样的功能

result = prog.findall(string)

例如,

import re
prog = re.compile("([a-z])")
result = prog.findall("a b c")
for i in result:
    print i

<强>输出

a
b
c

答案 1 :(得分:1)

方法.match不会直接返回匹配的字符串,而是直接返回所谓的匹配对象。

类似的东西。

<_sre.SRE_Match object at 0x0041FC80>

您想要做的是:

prog = re.compile(pattern)
matches = prog.findall(string)
for i in matches():
    print i