1.代码2.问题:为什么 7 和 9 之间是 2个$符号,而不是 3个$ 符号呢?(对贪婪模式有基础的理解)
2 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
量词默认都是贪婪模式,如* ? +
,贪婪的意思是尽可能多的匹配。*
表示前面的内容匹配0到多次,注意包含0次,也就是说可以匹配0个字符,也就是仅仅匹配一个位置。
所以字符串12345678890
匹配1
前面的位置,此时*
匹配的次数是0
;
匹配2
前面的位置,此时*
匹配的次数是0
;
...
匹配7
前面的位置,此时*
匹配的次数是0
;
然后,当从8
前面的位置开始匹配的时候,此时*
匹配的次数是2
,此次匹配结束后,位置移动到9前面
的位置;
匹配9
前面的位置,此时*
匹配的次数是0
;
匹配0
前面的位置,此时*
匹配的次数是0
;
匹配0
后面的位置,此时*
匹配的次数是0
;
所以,当替换的时候,会在1,2,3,4,5,6,7
前面添加一个$
,然后两个88
替换成一个$
,然后9
前面添加一个$
,0
前面添加一个$
,0
后面添加一个$
。
添加回答
举报
0/150
提交
取消