美文网首页
正则基础之量词

正则基础之量词

作者: Tinyspot | 来源:发表于2023-10-26 17:31 被阅读0次

1. 常用量词

1.1 量词 (+)

示例:ab+ vs (ab)+

1.2 量词 (?)

1.3 量词 (*)

匹配双引号字符串(可以为空串 "")
正则表达式 "[^"]*"

2. 通用形式的量词

  • {m,n}逗号之后不能有空格
  • {n} 出现 N 次
  • {m,n} 出现 m ~ n 次
  • {m,} 至少 m 次
  • {0,n} 最多 N 次,隐式的上限是65536

2.1 匹配数字

试试 \d{2,3}?, \d{2,3}+

2.2 匹配数字2

2.3 匹配数字 - 边界

\d{15}|\d{18} 匹配结果不准确,因为18 位数字也会匹配上前 15 位

试试 ^(\d{15}|\d{18)$

3. 量词的三种模式

  • 不管是贪婪或非贪婪,都会让位于整体匹配
Greedy 数量词 Reluctant 数量词 Possessive 数量词
X? X{0,1} X?? X{0,1} X?+ X{0,1}
X* X{0,} X*? X*+ ---
X+ X{1,} X+? X++ ---
X{n} --- X{n}? X{n}+ ---
X{n,} --- X{n,}? X{n,}+ ---
X{n,m} --- X{n,m}? X{n} X{n,m}+ X{n,m}

3.1 Greedy 量词

  • +, * 是贪婪匹配

* 代表 0 到多次,匹配 0 次就是空字符串

3.2 Reluctant 量词

  • 在量词后面加上英文问号 (?),可将贪婪模式变成非贪婪模式

3.3 回溯

  • 不管是贪婪模式,还是非贪婪模式,都需要发生回溯才能完成相应的功能

xy{1,3}z 首先匹配 3 个 y, 但正则 z 会匹配不上,此时正则向前回溯,吐出当前字符 z,接着用正则中的 z 去匹配

xy{1,3}?z 首先匹配 1 个 y, 但 z 会匹配不上,此时向前回溯...

3.4 独占模式 (Possessive)

  • 量词后面加上加号(+)
  • 独占模式和贪婪模式很像,独占模式会尽可能多地去匹配,如果匹配失败就结束,不会进行回溯,这样的话就比较节省时间

独占模式 xy{1,3}+y 只能匹配 xyyyy

其他:xy{1,3}?y 只能匹配 xyy

4. 实战

字符串 "dxxxxdxxxd"
d.+d 贪婪匹配,虽然让位于整体匹配,但也是在尽可能多的匹配情况下
d.+?d 非贪婪匹配,匹配一个dxxxxd
d.+? 会匹配两个 dx

相关文章

  • 《JavaScript正则表达式迷你书》读书笔记

    正则基础 常见简写形式 量词 修饰符 匹配位置 匹配开头与结尾 /^|$/g: 匹配列 /^|$/gm: 匹配行,...

  • 正则初识(一)规则

    定义 特殊字符:是在正则表达式中有特殊含义的非字母字符特殊字符 量词:在正则中表现出现次数的量词 其他常用字段常用...

  • 正则表达式中的“量词”入门介绍

    正则表达式中的量词可以用来指明某个字符串匹配的次数。将在以下描述“贪心量词”(Greedy)、“厌恶量词”(rel...

  • 正则表达式的贪婪与非贪婪的例子浅析

    正则表达式种常用的量词X+(1个或多个)、X*(0个或1多个)、X?(0个或1个) 正则表达式默认为贪婪模式,量词...

  • javascript正则表达式(四)

    正则捕获的贪婪性 问号的5个作用1.问号左边是非量词元字符: ?本身代表量词元字符, 出现零到一次问号左边是量词元...

  • 关于js正则表达式的贪婪和懒惰模式

    1、量词 正则表达式的量词有:* + ? {}* : 匹配0次到多次+ : 匹配1次到多次? : 匹配0次或1次{...

  • JS正则捕获的贪婪性

    问号在正则中的五大作用:问号左边是非量词元字符:本身代表量词元字符,出现零到一次;问号左边是量词元字符:取消捕获时...

  • js补充-正则-量词

    n+包涵至少一个n的字符串 n*包涵零个或多个n的字符串 n?包涵零个或一个n的字符串 n{x}包涵x个n的序列的...

  • 3. 【正则】量词

    n+ 代表匹配多个或1个符合n的字符 +有些类似g全局匹配,但不同的是会将连续符合规则的字符连接在一起。 正则具有...

  • 正则表达式匹配原理

    匹配基础 对于正则表达式,有两条普适原则: 优先选择最左端的匹配结果; 标准的匹配量词(*、+、?和{min, m...

网友评论

      本文标题:正则基础之量词

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