2

考虑以下字符串:ABC. 我想使用正则表达式捕获以下组:

Group1: AC
Group2: B

必须使用单个正则表达式来捕获这两个组。我无法控制代码,因此子匹配或捕获组无济于事。

我已经尝试了两个非捕获组并环顾四周。

对于非捕获组,比赛仍然是最终结果的一部分。

(?<Group1>a(?:(?<Group2>b))c)

Group1: ABC # 不正确,因为 B 是比赛的一部分。组2:B

通过环顾,Group2 不会被使用,并且在前瞻之后的正则表达式应该再次匹配 Group2 的内容,将其作为 Group1 的一部分。

(?<Group1>a(?=(?<Group2>b))bc)

Group1: ABC # 不正确,因为 B 是比赛的一部分。组2:B

如何在 Group1 比赛中忽略“B”?

非常感谢任何有关解决此问题的帮助。

谢谢, 巴拉吉

4

1 回答 1

1

你不能。正则表达式引擎无法将非线性子匹配粘贴到单个匹配中。任何匹配都必须是来自原始文本的连续字符。

于 2011-08-02T04:44:42.770 回答