前言

正则表达式的用法可以在正则表达式教程中查阅,此篇文章主要对一些重点进行梳理

一. 匹配

const str = '1223333333';const rg = /\d/g;const res = str.match(rg);console.log(res); // ['1', '2', '2', '3''3', '3', '3', '3','3', '3']
  1. /g: 该修饰符表示全局匹配,当匹配到第一个符合正则规则的字符串之后,会一直匹配下去,直到无符合规则的字符串为止,这也是我们看到数组中有多项的原因。
  2. \d: 无任何量词,正则规则\d 表示匹配一个数字字符,所以返回数组的每项只会返回一个字符串,
    但是我们实际需求上每次匹配的字符串可能不只有一个,这时我们就可以添加上量词了

    所以匹配的过程可以分为两步:
    (1). 匹配的范围;
    (2). 匹配得到的每项的返回长度

二. 贪婪匹配和非贪婪匹配

1. 贪婪匹配

一般趋向于最大长度匹配,总是尝试匹配尽可能多的字符

const str = '12233aaaa33333';const rg = /\d*/g;const res = str.match(rg);console.log(res); // [ '12233', '', '', '', '', '33333', '' ]

*为匹配0到任意多个,所以尽可能匹配到最大长度字符串,一直到a不符合条件为止。
由于0个也符合,但是aaaa不符合正则规则,所以返回了’ ’

2. 非贪婪匹配

总是尝试匹配尽可能少的字符
正则表达式默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

// 匹配
const str = 'a12233aaaa33333';const rg = /\d+/g; // 默认贪婪模式
const tempRg = /\d+?/g; // 非贪婪模式const res = str.match(rg);const tempRes = str.match(tempRg);console.log(res); // [ '12233', '', '', '', '', '33333', '' ]
console.log(tempRes); // ['1', '2', '2', '3','3', '3', '3', '3', '3', '3']

正则表达式系列(贪婪和非贪婪模式)相关推荐

  1. 正则表达式贪婪与非贪婪模式

    正则表达式贪婪与非贪婪模式 之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意. 1.什么是正则表达式的贪婪与非贪婪匹配 如:Stri ...

  2. 正则表达式之 贪婪与非贪婪模式详解

    1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配.非贪婪模式只被部分NF ...

  3. 转:正则表达式之 贪婪与非贪婪模式详解

    1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配.非贪婪模式只被部分NF ...

  4. 关于正则表达式的贪婪与非贪婪模式 - A JavaScript Fancier - IT博客网

    以前看正则表达式,但没有注意到正则表达式的贪婪与非贪婪模式,今天在经典上看到了这么段代码: <script> try{ str=" abcdefg abcdefghijkl &q ...

  5. 94. 正则表达式贪婪与非贪婪模式的区别?

    正则表达式,爬虫地时候用的比较多吧,暂时还没有接触过写爬虫地代码,先放下 写好正则表达式也是个不容易的事啊 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc& ...

  6. java正则表达式非贪婪_正则表达式贪婪与非贪婪模式(示例代码)

    之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意. 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="a ...

  7. 正则表达式(四)——贪婪与非贪婪模式

    高级用法在这里:正则表达式(三)--高级用法:search,findall,sub,split 8.贪婪与非贪婪模式 首先我们以简单的例子来说说什么是正则表达式的贪婪与非贪婪匹配? 比如假定匹配字符串 ...

  8. 正则表达式的贪婪和非贪婪模式

    最近在写程序时,碰到一个场景,需要找到一个字符串中指定的一个片段,而不是所有片段,这就涉及到正则表达式中贪婪和非贪婪两种模式. 字面意思上,正则表达式一般趋向于最大长度匹配,就是贪婪模式.匹配到结果就 ...

  9. 正则表达式口诀及常用正则 。正则贪婪与非贪婪模式

    正则表达式口诀及常用正则 签于网上太多的介绍都是一篇凶悍的短文,边看边理解可以,帮助记忆不行.又受五笔字型字根表口诀"白手看头三二斤..."的启发,  试作"正则表达式助 ...

  10. java正则表达式非贪婪_正则表达式中的贪婪与非贪婪匹配模式

    1.首先看看下面的例子: try{ str=" abcdefg abcdefghijkl "; re1=str.match(/ [\W\w]+?/ig); alert(" ...

最新文章

  1. 链表问题10——两个单链表生成相加链表
  2. 从汗水物流到智慧物流,物流产业智能化
  3. 1.内存优化(一)内存泄漏
  4. xml凭证模板的一般制作
  5. Windows10怎么创建后门?
  6. iphonex如何关机_iphonex常用手势操作有哪些 iphonex常用手势操作介绍【详解】
  7. GridView导出到Excel和开源图表工具
  8. 第九天学习Java的笔记(方法重载)
  9. 概率论-2.7 分布的其他特征函数
  10. iOS 正则表达式使用的三种方式语法
  11. 2020德勤面试开始了吗_2020公务员面试公告已出,5月28日开始面试
  12. Dataphin功能:集成——如何将业务系统的数据抽取汇聚到数据中台
  13. Samba配置文件解析
  14. 线性表——顺序表的应用
  15. it招聘上说熟悉linux系统,运维入门:细说Linux,做IT必看
  16. Eclipse中最有用的快捷键组合
  17. Ice_cream’s world III(prime)
  18. 现代通信原理3.1:线性系统概述
  19. Unity中手动压缩图片 修改图片分辨率
  20. mysql pxc集群介绍_PXC集群的概述及搭建

热门文章

  1. vue.js 中根据字母或者中文进行排序问题
  2. 茶室app开发为企业打造一个综合的共享经济服务平台
  3. 满足你们的好奇心,公开说一下我的微信公众号
  4. c语言 raii 用法日志,RAII 妙用之 ScopeExit
  5. 移远 4G EC20 高通 9X07 工业级 车规级 CAT4 CAT6
  6. 【知识星球】视频分析/光流估计网络系列上线
  7. java计算加班费的程序代码_17.编程题:计算加班费、卖东西、日期提取、线程、数字、网络、数据库...
  8. 李彦宏宣布百度架构调整:智能云事业部升级为事业群组
  9. 漂亮纯css蓝白色横向导航条代码
  10. 【Linux】frpc运行报错