文章目录

  • 概念
  • 一、贪婪模式与非贪婪模式的内容
  • 二、代码
    • 1.贪婪模式
    • 2.非贪婪模式(懒惰模式)

概念

贪婪和非贪婪(懒惰):
        JavaScript中正则表达式默认是贪婪的,改成非贪婪(懒惰)的只需要把?加到*+?或者{}后面,将会使用两次变为非贪婪(懒惰)的。
        很简单的理解就是,贪婪匹配就是尽可能多的匹配,非贪婪(懒惰)匹配就是尽可能少的匹配
在我们给一个限定符的时候,他会尽可能的去捕获到更多的内容,我们把这个叫做正则的贪婪性。


一、贪婪模式与非贪婪模式的内容

(1)贪婪模式:

正则表达式的普通量词,因为js中正则表达式默认使贪婪的。

  • *
  • +
  • ?
  • {n}
  • {n,}
  • {n,m}

(2)贪婪模式(懒惰模式):

  • *?
  • +?
  • ??
  • {n}?
  • {n,}?
  • {n,m}?

二、代码

(结果都在每行代码后面的注释里)

1.贪婪模式

(1)+        表示你的字符串在捕获的时候会获取到最大的长度的数字

const reg1 = /\d+/;
console.log(reg1.exec('12345sgdfdfg678bdsdsuiudbkj')); //12345

(2) *        再捕获的时候会捕获到最大长度的数字

const reg3 = /\d*/;
console.log(reg3.exec('9889797khjkkhj6686')); //9889797

(3)?        表示在捕获的时候只能获取到第一个数字

const reg5 = /\d?/;
console.log(reg5.exec('12345abc')); //1

(4){3}    表示在捕获的时候只能获取前三位数字

const reg7 = /\d{3}/;
console.log(reg7.exec('aa111abc')); //111

(5){3,}    表示在捕获的时候只能获取前三位数字

const reg9 = /\d{3,}/;
console.log(reg9.exec('111abc')); //111

(6) {n,m}    在捕获的时候会捕获到最大长度,就是123456789

const reg11 = /\d{3,7}/;
console.log(reg11.exec('abcd123456789abc')); //123456789

2.非贪婪模式(懒惰模式)

(1)+?    在捕获的时候在按照最少的数量来捕获的数字

const reg2 = /\d+?/;
console.log(reg2.exec('bkjdsivdhodivnoi')); //null

(2)*?    再捕获的时候会按照最少的数量来捕获数字

const reg4 = /\d*?/;
console.log(reg4.exec('r5756576kjkjgvdsakhj967')); //'' 因为?表示0或1最少的就是0所以啥都没有捕获到

(3)??    在捕获的时候会按照最少的数量来来捕获

const reg6 = /\d??/;
console.log(reg6.exec('12345678abc')); //''

(4){3}?    表示在铺货的时候只能获取前三位数字

const reg8 = /\d{3}?/;
console.log(reg8.exec('aa1221abc')); //222

(5){3,}? 表示在捕获的时候只能获取前三位数字

const reg10 = /\d{3,}?/;
console.log(reg10.exec('dsa1224543543abc')); //122

(6) {3,7}    在捕获的时候会捕获到最大长度,就是123456789

const reg12 = /\d{3,7}?/;
console.log(reg12.exec('abc123456789abc')); //123

(JavaScript)贪婪模式和非贪婪模式(懒惰模式)相关推荐

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

    1 贪婪模式与非贪婪模式 的理解 1.1 贪婪模式: 是尽可能的多地匹配字符 ,贪婪模式一般是在元符号后面没有添加? 1.2 非贪婪模式(懒惰模式): 是尽可能的少匹配字符,非贪婪模式一般是元符号后面 ...

  2. python与正则表达式(part3)--贪婪模式和非贪婪模式

    文章目录 贪婪模式和非贪婪模式 定义 贪婪模式转换为非贪婪模式 贪婪模式和非贪婪模式 定义 贪婪模式: 默认情况,在整个表达式匹配成功的前提下,尽可能多的匹配. 非贪婪模式(懒惰模式): 在整个表达式 ...

  3. 正则表达式的贪婪模式、非贪婪模式、占有模式

    文章目录 一.Greediness(贪婪型) (一)贪婪模式示例 (二)贪婪模式的匹配过程(贪婪模式的回溯) 二.Reluctant(勉强型) (一)非贪婪模式示例 (二)非贪婪模式的匹配过程 三.P ...

  4. Perl——正则表达式之贪婪模式和非贪婪模式

    Perl--正则表达式之贪婪模式和非贪婪模式使用 使用perl进行正则表达式匹配时,常用两种匹配模式,一种是贪婪匹配,一种是非贪婪匹配. 贪婪匹配(greedy match):尽可能匹配最长的内容.默 ...

  5. java 正则表达式 非贪婪模式_详解正则表达式的贪婪模式与非贪婪模式

    什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配, ...

  6. 第11.9节 Python正则表达式的贪婪模式和非贪婪模式

    在使用正则表达式时,匹配算法存在贪婪模式和非贪婪模式两种模式,在<第11.8节 Pytho正则表达式的重复匹配模式及元字符"?". "*". " ...

  7. java 正则表达式 非贪婪模式_正则表达式的贪婪模式和非贪婪模式

    一.什么是贪婪模式和非贪婪模式? 定义 贪婪模式:正则表达式趋向于匹配最大长度. 非贪婪模式:正则表达式趋向于匹配最小长度,即一旦匹配到结果就结束. 如何区分? 默认是贪婪模式. 若 量词 后面添加 ...

  8. 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配

    此文为python正则表达式的高阶入门,正则基础入门请参考程序员入门基础:python的正则表达式. 一.贪婪匹配和非贪婪匹配 举例说明概念: print('非贪婪匹配',re.search('el+ ...

  9. 正则表达式:贪婪匹配与非贪婪匹配

    情景 之前写过一个简单的爬虫,每天获取公司insgtagram主页的粉丝数用来进行粉丝趋势的展示.代码很简单就是通过获取主页源代码后用正则表达式匹配其中的一串json数据,再用python的json解 ...

最新文章

  1. 一些少见的下载地址(按需求更新)
  2. 如何下载和离线安装Chrome的CRX扩展文件包
  3. shell中join链接多个域_Linux Shell中使用awk完成两个文件的关联Join
  4. 电池报废征兆,三招辨别该不该换新
  5. php读取pdf文件
  6. C#设计模式(3)——工厂方法模式
  7. 关于mydumper的.metadata文件丢失
  8. Equipment download - generic inbound 和mapping处理逻辑分析
  9. Ubuntu 16.04安装教程及虚拟机设置
  10. VS Code 1.38 发布,官方图标存储库发布
  11. 转 Mac 使用ab性能测试工具
  12. nginx logrotate 日志切割
  13. python命令行清屏的简单办法_Python Shell 清屏方法
  14. 数字图像处理MFC程序设计之灰度图像的线性变换
  15. 计算机中通道的基本功能,Photoshop中各个面板的基本功能介绍 -电脑资料
  16. 180422 3步法Windows10引导Ubuntu开机启动
  17. Office快捷键之王,这个键应该没人不服
  18. springboot项目jar包发布的,如何线上修改jar包。
  19. PS | 工作区,工具栏不见了怎么办 -- 复位基本功能
  20. 【汇编语言】【ARM扩展资料】硬件组成

热门文章

  1. python中selenium(模拟登陆)+pytesseract(自动识别验证码)应用例子之查询住房公积金
  2. OpenLayers 4 ol.source 详解
  3. GSM Foxit Reader
  4. Android开发本地及网络Mp3音乐播放器(五)实现专辑封面图片
  5. 联想笔记本电脑没声音,显卡驱动正常,驱动人生教你扬声器安装程序unknown如何解决?
  6. win7计算机窗口无法最小化,win7系统任务栏无法显示网页最小化窗口的解决方法...
  7. cisco IOS,nexus和Arista 的vrrp
  8. linux能修改用户的权限,linux怎样修改用户权限
  9. Java图形编程实验总结_JAVA实验报告简单绘图程序
  10. iOS适配之autolayout和sizeclass(二)