正则表达式(\ d {3})(?= \ d)是什么意思?

时间:2014-01-29 09:07:20

标签: ruby regex expression

我是regex的新手,我正试图打破正则表达式,以便我能更好地理解它:

 /(\d{3})(?=\d)/ 

我知道(\d{3})正在捕获3位数,但不确定第二部分试图捕获的是什么。

?=是什么意思?

2 个答案:

答案 0 :(得分:8)

(?=\d)positive lookahead,表示匹配&捕获后跟数字的3位数字。

所以会发生这样的事情:

1234 => capture 123
123a => no match

答案 1 :(得分:2)

(?=pat) - 积极前瞻断言:确保以下字符匹配pat,但不包括匹配文本中的那些字符

/(\d{3})(?=\d)/ - 此处(\d{3})正在捕获3个数字,后跟一个数字,但最后一个数字不会在该组中捕获。

查看hereherehere

希望这会有所帮助!