Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的正则表达式_Javascript_Regex - Fatal编程技术网

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

这里您使用的是
*
,意思是“无”或“多”,因此它在读取
读取
部分后捕获
读取
”读取
。将+用于一个或多个