Ana*_*nan 7 javascript regex string
我正在学习正则表达式.但我无法理解'\ b',匹配单词边界.有三种情况,像这样:
我无法理解第三种情况.例如:
var reg = /end\bend/g;
var string = 'wenkend,end,end,endend';
alert( reg.test(string) ) ; //false
Run Code Online (Sandbox Code Playgroud)
'\ b'的一侧需要'\ w'字符,另一侧不需要'\ w'字符.字符串'end,end'应该匹配规则,在第一个字符是字符串','之后,在最后一个字符是字符串','之前,为什么结果是错误.请你帮忙,在此先感谢!
============分界线=============
在你的帮助下,我明白了.'end,end'匹配第一个'end'并且有一个边界,但是下一个字符是','而不是'e',所以'/ end\bend'是假的.
换句话说,reg'/ end\bend/g'或其他类似的reg不会永远退出.再次感谢
本\b
场比赛的位置,而不是字符.所以这个正则表达式/end\bend/g
说必须有字符串end
.然后它应该不是一个单词字符,,
它匹配,但正则表达式引擎不会在字符串中移动,它保持在,
.所以正则表达式中的下一个字符是e
,e
但不匹配,
.所以regexp失败了.这是一步一步发生的事情:
-----------------
/end\bend/g, "end,end" (match)
| |
-----------------
/end\bend/g, "end,end" (both regex and string position moved - match)
| |
------------------
/end\bend/g, "end,end" (the previous match was zero-length, so only regex position moved - not match)
| |
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3060 次 |
最近记录: |