我想在正则表达式中获取一个具有多个“或”和一个可选组的捕获组。这是我的正则表达式:(a|e|i|o|u)?(a|e|i|o|u)(g|k)
我想让它在g或k之前找到一个或两个元音,比如“taek”和“tag”。
我尝试将括号括在(a|e|i|o|u)?(a|e|i|o|u)
附近,但$1
仍然未初始化。
答案 0 :(得分:2)
$ 1;这并不意味着$ 2未被设置。如果你希望$ 1为空,你需要将括号括起来,即([aeiou]?)。如果你真的需要使用交替和可选指标那么你需要两个级别的括号,对于这种情况你可能想要用“?:”来取消内部的一个,即((?:a) | E |我| O |?U))