Python Reg Expression - 如何使用re.search打印出搜索结果?

时间:2018-02-20 00:59:50

标签: python regex search

我相信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吗?

2 个答案:

答案 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