正则表达式可选两个匹配组

时间:2016-05-21 10:21:40

标签: regex performance

制作符合此标准的正则表达式:

aaGrest与匹配的群组[aa, G, rest]

bb与匹配的群组[bb]

我正在努力使Grest部分可选,但这不起作用:

^([a-z]{2}[a-z]?)[(P|G)(.*)]?

Ps:不要复杂的东西或downvote!

1 个答案:

答案 0 :(得分:0)

试试这个:

^([a-z]{2}[a-z]?)(?:(P|G)(.*))?

请参阅live demo

这使用非捕获组(语法(?:...))对可选部分进行分组,而不使用形成捕获组,从而将捕获组编号为1,2和3。

方括号形成字符类,这不是你想要的。