正则表达式的非捕获性分组

2023年8月12日11:07:52

非捕获性分组,通常由一对括号加上 ?: 加上子表达式组成,非捕获性分组不会创建反向引用,就好像没有括号一样。如下:

var color = "#808080";
var output = color.replace(/#(?:\d+)/,"$1"+"~~");
console.log(RegExp.$1);// ""
console.log(output);// $1~~

以上,(?:\d+) 表示一个非捕获性分组, 由于分组不捕获任何内容,所以 RegExp.$1 就指向了空字符串.

同时,由于 $1 的反向引用不存在, 因此它被当成了普通的字符串。

  • 作者:liaowenxiong
  • 原文链接:https://liaowenxiong.blog.csdn.net/article/details/118458823
    更新时间:2023年8月12日11:07:52 ,共 256 字。