BEGIN A B C END | A B C
上記の正規表現は、BEGIN と END で囲まれていないか、どちらBEGIN A B C ENDかに一致するはずです。A B Cのように名前付きグループを使用しているときに A の後にあると仮定すると(?<ImAfterTheA>A)、Java では、最初の A に 2 番目の A とは異なるグループ名を付ける必要があります。
BEGIN (?<ImAfterTheA_1>A) B C END | (?<ImAfterTheA_2>A) B C
だから...私はこれを短くしたいと思いました:
BEGIN? A B C END?
しかし、これはA B Cor BEGIN A B Cor A B C ENDorBEGIN A B C ENDに一致し、私が意図したよりも大きな言語に効果的に一致します。
言語を広げずに、一致するグループに 2 つの異なるグループ名を使用しないように、より簡潔にできますか?