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 C
or BEGIN A B C
or A B C END
orBEGIN A B C END
に一致し、私が意図したよりも大きな言語に効果的に一致します。
言語を広げずに、一致するグループに 2 つの異なるグループ名を使用しないように、より簡潔にできますか?