我的問題相當簡單,即使其服務目的非常複雜。我將用一個簡單的例子:如何在配對內匹配配對
AzzAyyAxxxxByyBzzB
所以通常我會想A
和B
之間得到的一切。然而,因爲第一個A
和最後B
(一對)之間的一些內容包含額外的AB
對,我需要推回比賽結束。 (不知道這最後一部分是否有意義)。
所以,我正在尋找的是一些正則表達式,讓我有以下的輸出:
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中完成,但我想在我放棄它並嘗試其他方法之前,我會問你們中的一些正則表達式嚮導。謝謝!
附加信息:
我工作的項目是用Java編寫。其他
一個問題是,我解析其中可能包含這樣的一個文件:
AzzAyyAxxxxByyBzzB
Here is some unrelated stuff
AzzAyyAxxxxByyBzzB
AzzzBxxArrrBAssssB
和頂部AB
對必須單獨從底部AB
雙
完美的解決方案,不幸的是我應該提到另一個約束。請參閱編輯。抱歉! – kentcdodds
@kentcdodds其實我已經在編輯我的答案;)。那些「平行」的「A ... B」對總是隻出現在不同的線上?或者在一條線上可能會有多個連續的線對? –
@kentcdodds您使用哪種語言或工具?一些正則表達式引擎支持簡單的遞歸,這可能會幫助你。 –