javascript中的正则表达式
这是密码javascript中的正则表达式,javascript,regex,Javascript,Regex,这是密码 var str = 'a girl is reading a book!'; var reg = /\w*(?=ing\b)/g; var res = str.match(reg); console.log(res); 结果是chrome中的[“读取”,“”] 我想问为什么结果中会有“”。这是预期的行为 首先捕获read,因为它后面紧跟着ing。此处ing仅匹配。它从不包含在结果中 现在我们处于读取之后的位置,即我们将处于i。这里再次出现ing匹配(由于\w*),它给出一个空结果,
var str = 'a girl is reading a book!';
var reg = /\w*(?=ing\b)/g;
var res = str.match(reg);
console.log(res);
结果是chrome中的[“读取”,“”]
我想问为什么结果中会有“”。这是预期的行为 首先捕获
read
,因为它后面紧跟着ing
。此处ing
仅匹配。它从不包含在结果中
现在我们处于读取之后的位置,即我们将处于i
。这里再次出现ing
匹配(由于\w*
),它给出一个空结果,因为在读取和ing之间没有任何
您可以使用\w+(?=ing\b)
来避免空结果/\w*(?=ing\b)/g
这里您使用的是*
,意思是“无”或“多”,因此它在读取读取
部分后捕获读取
和”读取
。将+用于一个或多个