前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全局字符串替换之正则表达式

全局字符串替换之正则表达式

作者头像
李小白是一只喵
发布2020-04-24 09:52:31
7730
发布2020-04-24 09:52:31
举报
文章被收录于专栏:算法微时光算法微时光

介绍一下捕获组

捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。

简单的说就是把正则表达式匹配的别结果以变量的形式再次调用。

捕获组命名

如果没有显式为捕获组命名,即没有使用命名捕获组,那么需要按数字顺序来访问所有捕获组。在只有普通捕获组的情况下,捕获组的编号是按照“(”出现的顺序,从左到右,从1开始进行编号的。 注意:0代表整个组。

例: 正则表达式:(\d{4})-(\d{2})-(\d\d) 匹配:2018-06-01

结果: -. 0代表:2018-06-01 -. 1代表:2018 -. 2代表:06 -. 3代表:01

引用

普通捕获组反向引用:\k<number>,通常简写为\number

例:

\0 , \1, \2, \3

运用场景

现有函数:

代码语言:javascript
复制
how(a,b);
how(c,x);
how(m,n);

改成:

代码语言:javascript
复制
how(a,b,a);
how(c,x,c);
how(m,n,m);

如果大量这种代码需要更改,这样使用正则表达式就会方便很多。

实现: 查找正则表达式:

代码语言:javascript
复制
^.*(how)\(([a-zA-Z]*),([a-zA-Z]*)\);

替换正则表达式:

代码语言:javascript
复制
\1(\2,\3,\2);

解释:

代码语言:javascript
复制
(how)            捕获 how      结果放于 1 内
([a-zA-Z]*)      捕获 参数1    结果放于 2 内
([a-zA-Z]*)      捕获 参数2    结果放于 3 内

\number  输出 捕获组
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍一下捕获组
  • 捕获组命名
  • 引用
  • 运用场景
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档