【发布时间】:2012-10-26 23:45:15
【问题描述】:
我的问题相当简单,即使它的目的非常复杂。我将使用一个简单的例子:
AzzAyyAxxxxByyBzzB
所以通常我希望得到A 和B 之间的所有内容。但是,由于第一个 A 和最后一个 B(一对)之间的某些内容包含额外的 AB 对,我需要推迟比赛的结束。 (不确定最后一部分是否有意义)。
所以我正在寻找一些 RegEx,它可以让我获得以下输出:
Match 1
Group 1: AzzAyyAxxxxByyBzzB
Group 2: zzAyyAxxxxByyBzz
那我再匹配一下得到:
Match 2
Group 1: AyyAxxxxByyB
Group 2: yyAxxxxByy
然后终于又搞定了:
Match 3
Group 1: AxxxxB
Group 2: xxxx
显然,如果我在我得到的整个输入上尝试 (A(.*?)B):
Match x
Group 1: AzzAyyAxxxxB
Group 2: zzAyyAxxxx
这不是我想要的:)
我希望这是有道理的。我知道这是否不能在 RegEx 中完成,但我想在我放弃它并尝试其他方法之前,我会询问你们中的一些 regex 向导。谢谢!
其他信息:
我正在进行的项目是用 Java 编写的。
另一个问题是我正在解析一个可能包含以下内容的文档:
AzzAyyAxxxxByyBzzB
Here is some unrelated stuff
AzzAyyAxxxxByyBzzB
AzzzBxxArrrBAssssB
顶部的AB 对需要与底部的AB 对分开
【问题讨论】: