首页 > 正则表达式加圆括号和不加圆括号的区别

正则表达式加圆括号和不加圆括号的区别

如图所示,下面的正则表达式因为把 # 用圆括号包围,从而匹配到了多出一个 # ,请问这是什么原因?


并没有多匹配一次,“#” 代表的是当前这次匹配中 子项也就是小括号所匹配到的内容


因为圆括号就是用来做这个的,捕获括号内部的内容。


在正则匹配中,一般将匹配的字符串称为分组 0,按括号出现的顺序依次将其内容称为分组 1、分组 2……例如正则 /(a)(b)/ 匹配字符串 "ab",则分组 0 为 "ab",分组 1 为 "a",分组 2 为 "b"。执行正则匹配 /(a)(b)/.exec("ab") 的结果 ["ab", "a", "b"] 就是各个分组构成的字符串。如果去掉圆括号就没有分组 1、分组2……结果就是只包含分组 0 即匹配字符串的长度为 1 的数组 ["ab"]。

【热门文章】
【热门文章】