返回顶部
首页 > 资讯 > 前端开发 > VUE >JS之正则表达式懒惰性和贪婪性的示例分析
  • 213
分享到

JS之正则表达式懒惰性和贪婪性的示例分析

2024-04-02 19:04:59 213人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“js之正则表达式懒惰性和贪婪性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS之正则表达式懒惰性和贪婪性的示例分析”这篇文

这篇文章主要为大家展示了“js正则表达式懒惰性和贪婪性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS之正则表达式懒惰性和贪婪性的示例分析”这篇文章吧。

exec - > 正则的捕获

每一次捕获的时候都是先进行默认的匹配,如果没有匹配成功的,捕获的结果是null;只有有匹配的内容我们才能捕获到;

捕获的内容格式

1、捕获到的内容是一个数组,数组中的第一项是当前正则捕获的内容

  index:捕获内容在字符串中开始的索引位置

  input:捕获的原始字符串

var reg = /\d+/;
var str = 'woshi2016ni2017';
var res = reg.exec(str);
console.log(res) // ['2016',index:5,input:'woshi2016ni2017']
//第二次通过exec捕获的内容还是第一个"2016"
var res = reg.exec(str);
console.log(res) // ['2016',index:5,input:'woshi2016ni2017']

2、正则捕获的特点

  1)、懒惰性->每一次执行exec只捕获第一个匹配的内容,在不进行任何处理的情况下,在执行多次捕获,捕获的还是第一个匹配的内容。

  lastIndex:是正则每一次捕获在字符串中开始查找的位置,默认值为0

  2)、如何解决懒惰性?在正则的末尾加一个修饰符"g"

  修饰符:g、i、m

  global(g):全局匹配

  ignoreCase(i):忽略大小写匹配

  multiline(m):多行匹配  

var reg = /\d/g;
var str = 'woshi2016ni2017';
console.log(reg.lastIndex)
console.log(reg.exec(str))

   原理:加了全局修饰符g,正则每一次捕获结束后,我们的lastIndex的值都变成了最新的值,下一次捕获从最新的位置开始查找,这样就可以把所有需要捕获的内容都获取到了

  3)、自己编写程序获取正则捕获的所有的内容(一定不要忘了加g)

var reg = /\d+/g;
    var str = 'aswofde2015xsewde2016awdefer2017';
    var ary = [];
    var res = reg.exec(str);
    while(res){
      ary.push(res[0])
      res = reg.exec(str);
    }
    console.log(ary)//[2015,2016,2017]

  4)、贪婪性   正则的每一次捕获都是按照匹配最长的结果捕获的,例如:2符合正则、2015也符合正则,我们默认捕获的是2015

  5)、如何解决正则的贪婪性 ->在量词元字符后面添加一个?即可 

var reg = /\d+?/g;
    var str = 'aswofde2015xsewde2016awdefer2017';
    console.log(reg.exec(str));

  ?在正则中有很多的作用:

  放在一个普通的元字符后面代表出现0-1次 /\d?/  ->数字可能出现也可能不出现

  放在一个量词的元字符后面是取消捕获时候的贪婪性

3、字符串中的match方法->把所有和正则匹配的字符都获取到  

var reg = /\d+?/g;
    var str = 'aswofde2015xsewde2016awdefer2017';
    var ary = str.match(reg);//[2,0,1,5,2,0,1,6,2,0,1,7]

虽然在当前的情况下match比我们的exec更加的简便一些,但是match中存在一些自己处理不了的问题,在分组的捕获的情况下,match只能捕获大正则匹配的内容,而对于小正则捕获的内容是无法获取的

以上是“JS之正则表达式懒惰性和贪婪性的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网VUE频道!

--结束END--

本文标题: JS之正则表达式懒惰性和贪婪性的示例分析

本文链接: https://lsjlt.com/news/79976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JS之正则表达式懒惰性和贪婪性的示例分析
    这篇文章主要为大家展示了“JS之正则表达式懒惰性和贪婪性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS之正则表达式懒惰性和贪婪性的示例分析”这篇文...
    99+
    2024-04-02
  • Python正则表达式教程之三:贪婪/非贪婪特性
    之前已经简单介绍了Python正则表达式的基础与捕获,那么在这一篇文章里,我将总结一下正则表达式的贪婪/非贪婪特性。 贪婪 默认情况下,正则表达式将进行贪婪匹配。所谓“贪婪”,其实就是在多种长度的匹配字符...
    99+
    2022-06-04
    贪婪 之三 特性
  • C#正则表达式引擎贪婪特性是什么
    本篇内容主要讲解“C#正则表达式引擎贪婪特性是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#正则表达式引擎贪婪特性是什么”吧!C#正则表达式引擎贪婪特性,只要模式允许,它将匹配尽可能多的...
    99+
    2023-06-18
  • JavaScript正则表达式的贪婪匹配和非贪婪匹配的区别
    这篇文章主要介绍“JavaScript正则表达式的贪婪匹配和非贪婪匹配的区别”,在日常操作中,相信很多人在JavaScript正则表达式的贪婪匹配和非贪婪匹配的区别问题上存在疑惑,小编查阅了各式资料,整理出...
    99+
    2024-04-02
  • JavaScript正则表达式之非捕获性分组的示例分析
    这篇文章主要介绍了JavaScript正则表达式之非捕获性分组的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。非捕获性分组定义子表达...
    99+
    2024-04-02
  • JavaScript正则表达式的示例分析
    这篇文章主要为大家展示了“JavaScript正则表达式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript正则表达式的示例分析”这篇文...
    99+
    2024-04-02
  • jmeter正则表达式的示例分析
    小编给大家分享一下jmeter正则表达式的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!使用jmeter时经常有这样的情况:一个完整的操作流程,需先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就...
    99+
    2023-06-14
  • VB.NET正则表达式的示例分析
    小编给大家分享一下VB.NET正则表达式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.选择符 VB.NET正则表达式中“ ¦”...
    99+
    2023-06-17
  • 正则表达式组的示例分析
    这篇文章主要为大家展示了“正则表达式组的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“正则表达式组的示例分析”这篇文章吧。正则表达式组的理解把正则表达式的一部分放在圆括号内,你可以将它们...
    99+
    2023-06-17
  • JS正则表达式验证密码格式的示例分析
    这篇文章将为大家详细讲解有关JS正则表达式验证密码格式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1.密码必须为6-18位字母、数字、特殊符号的:...
    99+
    2024-04-02
  • Linux--shell脚本之正则表达式的示例分析
    小编给大家分享一下Linux--shell脚本之正则表达式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、正则表达式的概念及特点:正则表达式是对字符串...
    99+
    2023-06-09
  • shell中正则表达式的示例分析
    这篇文章给大家分享的是有关shell中正则表达式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。正则表达式匹配中文字符的正则表达式:[u4e00-u9fa5]评注:匹配中...
    99+
    2024-04-02
  • Java中正则表达式的示例分析
    这篇文章主要介绍了Java中正则表达式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现...
    99+
    2023-06-15
  • C#中正则表达式的示例分析
    这篇文章将为大家详细讲解有关C#中正则表达式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。(1)“@”符号符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C...
    99+
    2023-06-18
  • ES6正则表达式扩展的示例分析
    这篇文章主要为大家展示了“ES6正则表达式扩展的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ES6正则表达式扩展的示例分析”这篇文章吧。构造函数  在...
    99+
    2024-04-02
  • Javascript常用正则表达式的示例分析
    小编给大家分享一下Javascript常用正则表达式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!模式修饰符的可选参数...
    99+
    2024-04-02
  • ES6中正则表达式和字符串正则方法的示例分析
    这篇文章给大家分享的是有关ES6中正则表达式和字符串正则方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。RegExp构造函数在ES5中,RegExp构造函数的参数有两...
    99+
    2024-04-02
  • CentOS下命令汇总之正则表达式的示例分析
    这篇文章将为大家详细讲解有关CentOS下命令汇总之正则表达式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。正则表达式分两类:基本正则表达式(BRE)和扩展正则表达式(ERE)。基本正则表达式的...
    99+
    2023-06-10
  • Linux命令中正则表达式的示例分析
    小编给大家分享一下Linux命令中正则表达式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!命令中的正则表达式 如果要在命令输出或文本中筛选内容...
    99+
    2023-06-09
  • Dreamweaver中正则表达式搜索的示例分析
    这篇文章主要为大家展示了“Dreamweaver中正则表达式搜索的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Dreamweaver中正则表达式搜索的示例分析”这篇文章吧。比如:&nb...
    99+
    2023-06-08
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作