美文网首页
正则-分组捕获实例分析

正则-分组捕获实例分析

作者: 子心_ | 来源:发表于2019-06-16 09:43 被阅读0次

在正则捕获的时候,我们添加分组,不仅仅可以把大正则匹配的内容捕获,而且还可以把小分组代表的子正则匹配的内容一起捕获出来。

(?:xxx)分组只匹配不捕获

var str = "my name is {0}, my age is {1}, i come from {2}, i love {3}~~~";
var ary = ["易文",  28, "湖南", "javaScript"];

// {0} ---> ary[0] "易文"
// {1} --> ary[1] 28
// ...我们在捕获的时候,不仅要获取{0},而且还要获取里面的数字0,并且每一次exec执行的时候, 同时获取这两个

var reg = /{(\d+)}/g;
console.log(reg.exec(str)); // -> res=["{0}", "0",...]
// res[1]获取的是最小正则捕获的内容 ary[res[1]]代表的是对应数组中的内容,我们用这个内容把大正则捕获的res[0]"{0}"替换掉即可。

replace字符串实现替换的一个方法,但是一般情况下,执行一次只替换一个,我们为了替换换所有的符合的,需要用正则来处理:

var str = "beijingnanjing beijinghuangyingni";
str = str.replace(/beijing/g, "珠峰"); //在整个字符串中,把符合正则的部分替换成“北京”
// 如果你想替换的话,首先你先要把"beijing"获取到,然后再替换-->如果replace第一个参数是正则,那么涉及到了正则的捕获
/*
lastIndex = 0
首先捕获"beijing",捕获一次,replace就执行一次替换的操作
lastIndex = 7
再次捕获"beijing", 捕获一次,replace就执行一次替换的操作
lastIndex = 21
捕获不到内容了,结果为null,replace就不再执行替换的操作了
*/

如上述所说,我们当replace执行两次,相当于第二个参数function也执行两次,在每一次function执行的时候,在函数中return后面返回的是啥,就把捕获的内容替换成啥:

str = str.replace(/beijing/g, function (content, index, input) {
  // console.log(arguments);
// arguments当前函数的集合,我们发现和正则exec每一次捕获的结果很相似,这个函数会默认有三个参数:
// content:每一次捕获的内容
// index: 每一次捕获的开始索引
// input: 原始字符串
  return content.toUpperCase();
});
console.log(str);

相关文章

  • 正则-分组捕获实例分析

    在正则捕获的时候,我们添加分组,不仅仅可以把大正则匹配的内容捕获,而且还可以把小分组代表的子正则匹配的内容一起捕获...

  • 正则:分组

    正则分组作用: 1、改变优先级:2、分组引用 3、分组捕获:正则在捕获的时候,不仅把大正则匹配的内容捕获到,而且还...

  • javascript正则表达式----分组捕获

    正则的分组捕获 简单的分组捕获之前在写身份证号正则(不完整)的时候,提到过分组捕获 分组多次捕获假设有这种需求: ...

  • 正则-分组捕获

    分组改变x|y的默认优先级 分组引用\2代表和第二个分组出现一摸一样的内容;\1和第一个分组出现一摸一样的内容;这...

  • JS正则表达式的骚操作

    参考资料 《JS正则表达式的分组匹配》《正则表达式之捕获组/非捕获组介绍》《正则表达式中(?:pattern)、(...

  • 正则捕获-正则捕获的懒惰性,分组捕获

    let str = "hshshs2019sdfaa2020asdw2021"; 实现正则捕获的办法 正则RegE...

  • 3.正则中()分组的作用

    上一篇:正则中需要注意的[]细节 正则中()分组的作用 改变默认的优先级 分组 捕获 分组的引用 改变优先级let...

  • JavaScript - 正则表达式(二)

    正则表达式(一)传送门 四. 捕获组 作用:分组捕获的内容可以供表达式使用,或者最后输出 一个括号就是一个分组,最...

  • day-18网络编程

    1.回顾 1.1.正则符号 a.匹配字符 b.边界检测 c.匹配次数 d.分之、分组 |() - 分组,捕获,重复...

  • 正则表达式

    javascript正则表达式正则表达式30分钟入门教程js的正则表达式的正则前瞻(?=)和非捕获性分组(?:)有...

网友评论

      本文标题:正则-分组捕获实例分析

      本文链接:https://www.haomeiwen.com/subject/lnmifctx.html