正则表达式摆脱捕获组

时间:2014-01-26 19:21:53

标签: php regex

我试图摆脱捕获组1,但我无法弄清楚如何。

请参阅:http://regex101.com/r/qY6eA9

示例:AFM_LU78_8-14-08.pdf

正则表达式:(LU|Local|Lodge|Council|LL)(\d{1,6})

结果:LU78

预期成果:78

有关我遗失的任何建议吗?还有任何一种用于正则表达式的codeacademy类型教程吗?

1 个答案:

答案 0 :(得分:1)

使用non-capturing group

(?:LU|Local|Lodge|Council|LL)(\d{1,6})

来自文档:

  

普通括号实现两个功能的事实并不总是有用的。有时候需要分组子模式而没有捕获要求。如果左括号后跟“?:”,则子模式不执行任何捕获,并且在计算任何后续捕获子模式的数量时不计算。例如,如果字符串“白皇后”与模式the ((?:red|white) (king|queen))匹配,则捕获的子串为“白皇后”和“女王”,编号为1和2.捕获的子串的最大数量为99,并且捕获和非捕获的所有子模式的最大数量是200.