正则表达式 - 匹配第二组括号([])之间的所有

Rol*_*and 5 php regex

我有以下字符串,我需要匹配[]括号之间的最后七个digets.字符串看起来像这样

[15211Z:2012-09-12]([5202900])

我只需要在([])之间的字符串中匹配5202900,类似的数字可能出现在字符串中的任何位置,所以这样的东西将不起作用 (\d{7})

我也试过以下正则表达式

([[0-9] {1,7}])

但这包括字符串中的[]?

ATN*_*ATN 5

如果您只想要7位数字,而不是括号,但要确保数字用括号括起来:

(?<=\[)\d{7}(?=\])
Run Code Online (Sandbox Code Playgroud)

仅供参考:这被称为积极的前瞻积极的外观.

关于这个主题的好消息来源:http://www.regular-expressions.info/lookaround.html

  • Lookahead和lookbehind可能**非常昂贵.如果可能的话,最好避免使用它们.最好的方法是基准测试. (2认同)