首页 > 解决方案 > 如何使用正则表达式捕获两个标记之间的多个子字符串?

问题描述

我知道如何在两个标记之间捕获子字符串的单个实例:

Python 3 如何使用正则表达式在两点之间获取字符串?

我用这个字符串测试了这种方法:

text = 'blah.blah${capture1}.${capture2}'

我想得到这些标记'${'和'}'之间的所有子字符串,但它只得到第一个。

>>> text = 'blah.blah${capture1}.${capture2}'
>>> found = re.search('\$\{(.+?)\}', text)
>>> found.groups()
('capture1',)
>>> len(found.groups())
1
>>> 

我如何获得所有这些?

标签: pythonregex

解决方案


您需要一个正则表达式方法来查找字符串中的所有匹配项。你应该尝试re.findall('\$\{(.+?)\}', text)re.finditer('\$\{(.+?)\}', text)。第一个将返回一个列表,第二个将返回一个可迭代的。


推荐阅读