我遇到一个python for
循环,其中包含re.match
跳过if
并向右跳到else
,因此循环始终返回"none"
}。如果我没有其他人,if
将会有效。
以下是代码:
def searchBegin (searchChar):
regex = searchChar
regex += '.{2,7}'
pattern = re.compile(regex)
for (offset, line) in enumerate(lines):
if re.match(pattern, line):
return line
break
else:
return 'none'
我该如何纠正?
答案 0 :(得分:4)
目前发生的是你的第一行没有匹配,所以循环在第一次迭代中进入else块,并直接返回none
。
相反,您可以执行以下操作,在for循环结束后返回none
,否则只打印no match
:
def searchBegin (searchChar):
regex = searchChar
regex += '.{2,7}'
pattern = re.compile(regex)
for (offset, line) in enumerate(lines):
if re.match(pattern, line):
return line
break
else:
print "no match"
return 'none'