【发布时间】:2019-07-03 22:58:48
【问题描述】:
给定文本,
A 0 1 2 3 4
我想将 A 与每个数字匹配为单独的匹配项,例如,
re.findall(some_regex, "A 0 1 2 3 4")
会回来,
[
["A", "0"],
["A", "1"],
["A", "2"],
["A", "3"],
["A", "4"],
]
【问题讨论】:
-
这是不可能的。一个正则表达式总是匹配一个连续的子字符串。
-
默认情况下所有正则表达式引擎,如果当前(搜索)位置与上次匹配在同一点匹配,则将当前(搜索)位置提高 1。您可以通过后视来做一些棘手的事情,但它需要使用交替进行的固定值,其中交替的数量与相应数量的捕获组固定。在 PCRE 中,您有机会将组数过滤为 2,但交替存在。在 Dot-net 中,您可以使用单一的lookbehind,无需交替
(?<^(.).*)(.)walla ..
标签: python regex regex-lookarounds