【发布时间】:2023-03-15 10:52:01
【问题描述】:
注意:我正在使用 pypi regex 模块
我有以下正则表达式模式(标志V1 + VERBOSE):
(?(DEFINE)
(?P<id>[\d-]+)
)
id:\s(?&id)(,\s(?&id))*
如何检索<id> 组匹配的所有时间?
例如,在以下文本中:
不匹配此日期:2020-10-22,但匹配此 ID:5668-235 以及这些 ID:7788-58-2、8688-25、74-44558
我应该能够检索以下值:
["5668-235", "7788-58-2", "8688-25", "74-44558"]
请注意 this regex 匹配模式,但我想在每次匹配特定组时检索(即使它在同一个匹配对象中多次)。
【问题讨论】:
-
用捕获组包裹它。
-
即使使用捕获组,在
<id>模式重复的情况下,如最后一个,不会返回中间匹配,如本例中:regex101.com/r/fDcvJF/3 -
不要看 regex101 results,它不支持 PyPi 正则表达式库,看我的回答。特别是this demo.
标签: python-3.x regex pypi-regex