标签: ruby regex expression
我是regex的新手,我正试图打破正则表达式,以便我能更好地理解它:
/(\d{3})(?=\d)/
我知道(\d{3})正在捕获3位数,但不确定第二部分试图捕获的是什么。
(\d{3})
?=是什么意思?
?=
答案 0 :(得分:8)
(?=\d)是positive lookahead,表示匹配&捕获后跟数字的3位数字。
(?=\d)
所以会发生这样的事情:
1234 => capture 123 123a => no match
答案 1 :(得分:2)
(?=pat) - 积极前瞻断言:确保以下字符匹配pat,但不包括匹配文本中的那些字符
(?=pat)
/(\d{3})(?=\d)/ - 此处(\d{3})正在捕获3个数字,后跟一个数字,但最后一个数字不会在该组中捕获。
查看here,here和here
希望这会有所帮助!