正则表达式仅返回第一次出现

时间:2016-12-14 11:04:08

标签: python regex

我不明白为什么我的正则表达式提取不会返回所有出现的事件(https://regex101.com/r/1yWpq6/1):

import re

s = """
_('hello')

foo

_('world')

bar

"""

print(re.search('_\(\'(.*)\'\)', s, re.MULTILINE).groups())

产生

  

('你好',)

我希望``('你好','世界')

为什么只有口渴才能恢复?

2 个答案:

答案 0 :(得分:0)

你需要像这样使用re.findall()

print(re.findall('_\(\'(.*)\'\)', s))

<强>输出:

>>> import re
>>>
>>> print(re.findall('_\(\'(.*)\'\)', s))
['hello', 'world']

答案 1 :(得分:0)

print(re.findall('_\(\'(.*)\'\)', s, re.MULTILINE))

出:

['hello', 'world']
  

re.search(pattern, string, flags=0)   扫描字符串寻找   正则表达式模式产生匹配的位置,和   返回相应的匹配对象。

     

re.findall(pattern, string, flags=0)   返回所有非重叠   字符串中的模式匹配,作为字符串列表。