阿古斯LM
2018-02-16 12:27
正向前瞻exp(?=assert)是在正则表达式匹配到规则的时候向前检查是否符合断言。是的话执行正向前瞻
负向前瞻exp(?!assert)是在正则表达式匹配到规则的时候向前检查是否不符合断言。是的话执行负向前瞻
都是从后往前匹配
\w匹配的是 [a-zA-Z_0-9]
'a2*34v8'.replace(/\w(?=\d)/g,‘X’)
为什么结果是‘X2*X4X8’?不是应该从后往前匹配么?a符合\w,但是前面没有数字不符合(?=\d)。
还有'a2*34v8'.replace(/\w(?!\d)/g,‘X’) ,结果是‘aX*3XXX’
这两个都和正向前瞻和负向前瞻定义相反,为什么??
“正则表达式是从文本头部向尾部解析”。这就像在走路,没走过的路在你的前面,需要你往前看(前瞻);走过的路需要你回头看(后顾)
JavaScript正则表达式
96812 学习 · 119 问题
相似问题