首页 > 其他分享 >正则表达式

正则表达式

时间:2023-06-28 11:22:44浏览次数:41  
标签:量词 匹配 正则表达式 字母 默认 贪婪


量词

这三个都是正则表达式的量词,量词,顾名思义,就是表示出现数量多少次的词语;

  • *表示匹配前面的元素零次或多次。例如,a* 表示匹配零个或多个连续的字母 a。
  • +表示匹配前面的元素一次或多次。例如,a+ 表示匹配一个或多个连续的字母 a。
  • {m,n} 表示匹配前面的元素至少 m 次,至多 n 次。例如,a{2,4} 表示匹配连续的字母 a,至少 2 次,至多 4 次。

专门针对量词的贪婪匹配和非贪婪匹配

概念

贪婪匹配和非贪婪匹配是正则表达式中量词(如 *、+、?、{m,n} 等)的匹配行为。

- 贪婪匹配:贪婪匹配会尽可能多地匹配符合条件的字符。也就是说,它会尽量延伸匹配的范围,使得整个正则表达式能够成功匹配。例如,对于正则表达式 `a.*b`,如果待匹配的字符串是 "aabab",贪婪匹配会从第一个字母 a 开始,一直匹配到最后一个字母 b,而不是在第一个字母 a 后面的第一个字母 b 处停止匹配。

- 非贪婪匹配(也称为懒惰匹配或最小匹配):非贪婪匹配会尽可能少地匹配符合条件的字符。也就是说,它会尽量缩小匹配的范围,使得整个正则表达式能够成功匹配。非贪婪匹配可以通过在量词后面添加一个问号 `?` 来实现。例如,对于正则表达式 `a.*?b`,如果待匹配的字符串是 "aabab",非贪婪匹配会从第一个字母 a 开始,只匹配到第一个字母 b 处,而不是一直匹配到最后一个字母 b。

贪婪匹配和非贪婪匹配的选择取决于你对匹配结果的期望。如果你希望匹配尽可能多的字符,以满足整个正则表达式的条件,就使用贪婪匹配。如果你希望匹配尽可能少的字符,只满足最基本的条件,就使用非贪婪匹配。

量词的默认是否贪婪

需要注意的是,并非所有的量词都支持非贪婪匹配。例如,`+` 和 `*` 和 `{m,}` 默认是贪婪匹配的,而 `?` 和 `{m,n}` 和’{m,}?‘默认是非贪婪匹配的。

但是你可以通过在量词后面添加问号 `?` 来改变默认的匹配行为。

 

标签:量词,匹配,正则表达式,字母,默认,贪婪
From: https://www.cnblogs.com/EricShen/p/17510896.html

相关文章

  • 学习爬虫入门3,正则表达式,代码复现
    正则表达式写回调函数def (self,response) ......
  • 正则表达式-01
     这是一段正则表达式示例,筛选出sql语句里面用到的表。 #!/usr/bin/envpython#-*-coding:utf-8-*-importretext1="""T2.NOTI_CONTasEVENT_INFO--事件内容FROM(SELECT*FROMBOND_BASIC_INFOfinalWHEREISVALID=1)T1--债券基本......
  • 正则表达式可视化
    正则表达式可视化https://wangwl.net/static/projects/visualRegex#flags=i&prefix=Z&source=Zurl......
  • 反射与正则表达式学习总结
    1.反射的定义(1)动态获取对象信息(2)调用对象的信息(成员变量,成员方法,构造方法)2.反射的核心编程思想以及各自的常用方法步骤1:获取class类型的对象【字节码对象】(1)Classaclass=Class.forName("");(2)ClassemployeeClass=Employee.class;(3)Employeeemployee=newEmplo......
  • Python.re正则表达式的标记
    标记方式在Python的re模块中,有以下几种标记(flags)可用于修改正则表达式的匹配行为:re.I(或re.IGNORECASE):忽略大小写匹配。例如,正则表达式[a-z]+将匹配小写字母字符串,而使用re.I标记后,它将匹配大小写混合或大写字母字符串。re.M(或re.MULTILINE):多行模式匹配。默认情况下,正......
  • 正则表达式几个匹配例子
    匹配手机号1.由1开头的数字^12.第二位数字一般是3,4,5,7,8中的一个数字[34578]3.接下来9位都是0到9的数字\d{9}4.为了严谨,结尾加上$,表示:是以9个数字结束^1[34578]\d{9}$在字符串中匹配多个:1[34578]\d{9}QQ号匹配:^[1-9]\d{5,11}$QQ号第一位:[1-9]QQ号一般5-12位,剩下的位数......
  • 正则表达式
    1.正则定义定义:文本模式;字母,数字或者是特殊字符组成的2.正则应用场景一般应用于注册等功能中的校验等需求3.正则用途检索或者替换符合某些规则的文本2.正则apiJava.Lang.StringJava.u......
  • JavaScript(05): 正则表达式
    当检索某个文本的时候,我们可能需要一种模式来描述被检索的内容,在这种情况下就可以考虑使用正则表达式。正则表达式可以定义一种模式,这种模式可能是一个简单的字符、也可能是一个非常复杂的字符串,通常被用于解析、格式检查、替换等。关于正则表达式的具体内容可以参考以下链接,本文只......
  • 【正则表达式】匹配选择题
    试卷文本使用https://github.com/Minuhy/python_docx_export导出的word文档文本:2022-2023学年第二学期期末课程考核试卷(A1)卷课程名称:分布式数据库HBase考核形式:上机考试年级、专业、层次:21级大数据技术大专考试时长:120分钟一、选择题(每小题3分,共30分)1、在Ce......
  • 正则表达式工作实践总结
    正则表达式是一种非常强大和灵活的工具,它可以提供基于模式匹配的文本检索和替换功能,广泛应用于文本处理、字符串操作、数据校验等领域。在 JavaScript 中,正则表达式是内置的一种数据类型,可以通过字面量 /pattern/ 或者构造函数 RegExp() 来创建。在我们的工作中,根据不同的业......