感觉非贪婪模式没什么用啊?比如\d{3,6}?直接使用\d{3}不就得了
感觉非贪婪模式没什么用啊?比如\d{3,6}?直接使用\d{3}不就得了,
既然非贪婪模式只要匹配到3次成功就不会继续匹配,难道还存在不能匹配3次却可以匹配6次的例子吗,
如果有请举例出不能使用\d{3}代替\d{3,6}?的例子
感觉非贪婪模式没什么用啊?比如\d{3,6}?直接使用\d{3}不就得了,
既然非贪婪模式只要匹配到3次成功就不会继续匹配,难道还存在不能匹配3次却可以匹配6次的例子吗,
如果有请举例出不能使用\d{3}代替\d{3,6}?的例子
2016-10-17
\d{3,6}?带的是一个可以改变的量词,\d{3}带的是一个确定的量词,也就是说当量词取3无法匹配,而当量词取4、5、6可以匹配时,前者返回true,后者返回false。
那么是否存在“不能匹配3次,且可以匹配4、5、6次”的例子呢?
例如:
/a0{3}a/.test("a0000aa00000aa000000a")
false
/a0{4}a/.test("a0000aa00000aa000000a")
true
/a0{3,6}?a/.test("a0000aa00000aa000000a")
true
以此类推,可以对于任意自然数n构造出“不能匹配n次,且可以匹配(n+1)、(n+2)……次”的字符串。
再看看下面的例子,或许您会对“量词”、“全局匹配”、“贪婪模式与懒惰模式”有更深的理解。
"0001110011".replace(/0\d{1,3}1/,"X")
"X10011"
"0001110011".replace(/0\d{1,3}1/g,"X")
"X1X"
"0001110011".replace(/0\d{1,3}?1/,"X")
"X110011"
"0001110011".replace(/0\d{1,3}?1/g,"X")
"X11X1"
"0001110011".replace(/0\d{1}1/,"X")
"0X110011"
"0001110011".replace(/0\d{1}1/g,"X")
"0X11X1"
举报