扩展正则量词

简介: 扩展正则量词

扩展正则是相对于基本正则表达式而言,提供了更多的特殊符号和功能,其中量词是用于指定匹配项重复次数的关键元素。在扩展正则表达式中,常见的量词包括但不限于以下几个:

  1. *(星号):匹配前面的表达式零次或多次。例如,a*b 可以匹配 "b", "ab", "aab", "aaab", 甚至是空字符串。

  2. +(加号):匹配前面的表达式一次或多次。例如,a+b 可以匹配 "ab", "aab", "aaab",但不会匹配 "b"。

  3. ?(问号):匹配前面的表达式零次或一次。例如,a?b 可以匹配 "b" 或 "ab",但不会匹配 "aab"。

  4. {m,n}:匹配前面的表达式至少 m 次,至多 n 次。例如,a{2,3} 可以匹配 "aa", "aaa",但不会匹配 "a" 或 "aaaa"。

  5. {m}:匹配前面的表达式恰好 m 次。例如,a{3} 只会匹配 "aaa"。

在某些正则表达式引擎中,特别是那些支持 Unicode 属性转义和 Unicode 字符集的现代引擎(如JavaScript ES6及以后版本),使用 u 修饰符可以启用对Unicode字符的正确解析,这时量词也会相应地应用于Unicode字符,而不仅仅是单个字节或ASCII字符。

另外,正则表达式的贪婪和懒惰模式也与量词有关:

  • 贪婪模式:默认情况下,量词尽可能多地匹配字符。
  • 懒惰(或非贪婪)模式:通过在量词后面添加 ?,使其变为懒惰模式,如*?, +?, {m,n}?,这样量词会在找到第一个满足条件的匹配后停止匹配,而不是尝试匹配最长可能的子串。
目录
相关文章
|
9天前
10.正则表达式匹配
10.正则表达式匹配
|
1月前
|
JavaScript
10. 正则表达式匹配
10. 正则表达式匹配
26 0
|
11月前
|
算法 Java C++
正则表达式匹配
正则表达式匹配
|
10月前
|
算法 C语言 数据安全/隐私保护
【C++技能树】快速文本匹配 --正则表达式介绍与C++正则表达式使用
假设要判断一个QQ号是否有效,他必须满足以下三个规则
84 0
|
前端开发 JavaScript Java
正则表达式(极其适合零基础)
正则表达式(极其适合零基础)
127 0
正则表达式(极其适合零基础)
|
前端开发 数据安全/隐私保护 Windows
常用的20个正则表达式
常用的20个正则表达式
257 0
|
算法 前端开发 程序员
实现正则表达式匹配算法
实现正则表达式匹配算法
实现正则表达式匹配算法
|
C#
正则表达式01
正则表达式01
153 0
正则表达式01
正则表达式(.*?)惰性匹配()
正则表达式(.*?)惰性匹配()
85 0