python - 如何使用正则表达式捕获两个标记之间的多个子字符串?
问题描述
我知道如何在两个标记之间捕获子字符串的单个实例:
我用这个字符串测试了这种方法:
text = 'blah.blah${capture1}.${capture2}'
我想得到这些标记'${'和'}'之间的所有子字符串,但它只得到第一个。
>>> text = 'blah.blah${capture1}.${capture2}'
>>> found = re.search('\$\{(.+?)\}', text)
>>> found.groups()
('capture1',)
>>> len(found.groups())
1
>>>
我如何获得所有这些?
解决方案
您需要一个正则表达式方法来查找字符串中的所有匹配项。你应该尝试re.findall('\$\{(.+?)\}', text)
或re.finditer('\$\{(.+?)\}', text)
。第一个将返回一个列表,第二个将返回一个可迭代的。
推荐阅读
- javascript - ReactJS - 在更新表单中预填充动态字段
- php - 为什么 ping 属性在 html5 中无法正常工作
- swagger - 如何修复操作必须在 Swagger 编辑器中具有唯一标识符语义错误
- node.js - 是否需要 GET 请求 API,因为 POST 在各方面都更好?
- r - plm:::vcovDC.plm 中的自由度是如何计算的?
- python - 在图python上找到最短路径
- c# - ParseLambda 方法抛出异常
- node.js - NestJS > TypeORM 将复杂实体映射到复杂 DTO
- java-8 - jdk 11 中缺少外部 jar 文件
- python - 在 CentOS 6 中使用 Python 2.6.6 和 scapy 2.3.3 的问题