BEGIN A B C END | A B C
上面的正则表达式应该匹配BEGIN A B C END
或A B C
不匹配被 BEGIN 和 END 包围。假设在使用像 in 这样的命名组时在 A 之后(?<ImAfterTheA>A)
,在 Java 中,您需要为第一个 A 赋予与第二个 A 不同的组名。
BEGIN (?<ImAfterTheA_1>A) B C END | (?<ImAfterTheA_2>A) B C
所以......我想缩短这个并想出了:
BEGIN? A B C END?
但话又说回来,这将匹配A B C
orBEGIN A B C
或A B C END
or BEGIN A B C END
,有效地匹配一种比我想要的更大的语言。
我可以在不扩大语言范围的情况下更简洁,从而避免匹配组使用两个不同的组名吗?