我需要找到与正则表达式匹配的单词中的所有字符串。我需要先编译它然后打印出来,这就是我所做的:
prog = re.compile(pattern)
result = prog.match(string)
for i in result:
print i
它会引发错误。我应该改变什么?
答案 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