javascript - 正则表达式加圆括号和不加圆括号的区别
PHP中文网
PHP中文网 2017-04-10 16:35:20
[JavaScript讨论组]

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
迷茫

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

阿神

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

阿神

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号