BEGIN A B C END | A B C
以上的regexp應該匹配任一BEGIN A B C END
或A B C
不受BEGIN和END包圍。在A後假設的存在,而在(?<ImAfterTheA>A)
使用一組命名一樣,在Java中,你需要給第一個A不同的組名比第二A.「(」 A B C 「)」 或A B C - 匹配均衡包裝或沒有正則表達式
BEGIN (?<ImAfterTheA_1>A) B C END | (?<ImAfterTheA_2>A) B C
所以...我想縮短這個來到了:
BEGIN? A B C END?
但話又說回來,這將匹配A B C
或BEGIN A B C
或A B C END
或BEGIN A B C END
,有效匹配比我預期的更大的語言。
我可以在不擴大語言的情況下將其更加簡潔,從而避免匹配組的兩個不同的組名稱?
我真的不明白你的問題。 – Juvanis
這個問題幾乎沒有意義。更加詳細一些。 –
你的第二個正則表達式沒有做你認爲應該做的事。 –