考虑以下字符串: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
如何忽略“B”作为Group1匹配的一部分?
非常感谢任何有关解决此问题的帮助。
谢谢, 巴拉吉
答案 0 :(得分:1)
你做不到。正则表达式引擎无法将非线性子匹配粘贴到单个匹配中。任何匹配必须是原始文本中的一系列字符。