Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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,为什么数组中的第三个元素只是“.1”而不是“4.5.1”?我认为\d+将对应于“3”,而(\.\d)*将捕获剩余的小数和数字 var re=/see(第\d+(\.\d)*)章/i; var str='有关正则表达式的更多信息,请参阅第3.4.5.1章和第2.3章'; console.log(str.match(re))重复捕获组将只捕获其最后一次重复。如果要捕获所有数字和句点,应在组内重复: var re=/see(第\d+章)((?:\。\d)*)/i; var str='有关正则表达式

为什么数组中的第三个元素只是“.1”而不是“4.5.1”?我认为
\d+
将对应于“3”,而
(\.\d)*
将捕获剩余的小数和数字

var re=/see(第\d+(\.\d)*)章/i;
var str='有关正则表达式的更多信息,请参阅第3.4.5.1章和第2.3章';

console.log(str.match(re))重复捕获组将只捕获其最后一次重复。如果要捕获所有数字和句点,应在组内重复:

var re=/see(第\d+章)((?:\。\d)*)/i;
var str='有关正则表达式的更多信息,请参阅第3.4.5.1章和第2.3章';
console.log(str.match(re))
array[0] is a full match
array[1] is a group match caused by a wider parenthesis (chapter \d+(\.\d)*)
array[2] is a group match caused by the narrow parenthesis  (\.\d)*