正则表达式捕获组的理解

费玺 2016-10-23 06:55:52
捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
1 ((A)(B(C)))
2 \A
3 (B(C))
4 (C)
组零始终代表整个表达式
在这个表达式中
组0代表的整个表达式与组1是相同的吗?

若相同我在这个例子中为什么结果不对?
我写的正则
(\w+[\w.]*@[\w.]+\.\w+)
替换文本
<A href="mailto:$0">$0</A>
结果
<A href="mailto:$0">$0</A>
若替换问题换为
<A href="mailto:$1">$1</A>
结果为
<A href="mailto:abc@qq.com">abc@qq.com</A>
为什么$0不对呢?
若组0与组1不同?
不同在什么地方?
...全文
296 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
费玺 2016-11-02
  • 打赏
  • 举报
回复
谢谢,了解了
天际的海浪 2016-10-24
  • 打赏
  • 举报
回复
没有 $0 捕获整个模式匹配在 replace() 方法中是 $& , 在 RegExp对象中是 RegExp.lastMatch 或 RegExp["$&"] 如果你的整个正则表达式都包含在第一对括号内,则 $& 和 $1的内容一样。否则不一样

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧