2011-05-21 106 views

回答

7

正則表達式中的邏輯與由一系列堆棧先行視圖斷言組成。例如:

(?=^.*foo) 
(?=^.*bar) 
(?=^.*glarch) 

將匹配包含這三種「富」,「酒吧」的任何字符串,而「glarch」,以任意順序,即使一些應該重疊。 (這個假設通常解釋爲^.。)

當然,這個屬性並不是Java特有的。

+0

這是否被認爲是一個單一的正則表達式? – EpsilonVector 2011-05-21 14:10:44

+0

@EpsilonVector:當然!如果你這樣使用它。我已經將各自的subregex分別放在他們自己的行上以便易讀。這在Java中要求在編譯時使用前導'(?x)'或'Pattern.COMMENTS',以便換行不計數。或者你可以直接使用'+'或其他一些連接機制來簡單地鏈接這三個部分。如果你願意,我可以用Java來更新完整的Java示例的答案,但是如果你能向我展示你想要的東西和實際的東西,可能會有所幫助。 – tchrist 2011-05-21 14:26:25