我相信re.search仅产生TRUE / FALSE结果,但有没有办法收集结果(除了使用findall)?我的印象是,在一行文本中,一旦re.search找到匹配项,就不会再进一步了,因为它现在为TRUE。也许这是对re.search的不当使用,因为它应该只是找到True和False而不应该用来收集。 我做了一些研究,发现了.group()命令,虽然我不确定它是如何工作的。
import re
str =" french-fries and french-toast"
is_it_there = re.search(r'french-\S+', str)
if is_it_there:
print(is_it_there.group())
else:
print("did not find")
我应该像这样使用re.findall吗?
答案 0 :(得分:2)
看一下re.finditer
,它会返回一个匹配对象的迭代器,它似乎正是你要找的东西:
for match in re.finditer('french-\S+', 'french-fries and french-toast'):
print(match.group())
french-fries
french-toast
答案 1 :(得分:0)
使用 re.findall
import re
match = re.findall('french-\S+', 'french-fries and french-toast')
if match:
for m in match:
print m