扩展正则量词

简介: 扩展正则量词

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

  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}?,这样量词会在找到第一个满足条件的匹配后停止匹配,而不是尝试匹配最长可能的子串。
目录
相关文章
|
PHP 开发者
你见过这些正则表达式中奇奇怪怪的匹配模式吗 _ 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
一篇文章让你清楚的了解正则表达式中奇奇怪怪的匹配模式-- 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
100 1
你见过这些正则表达式中奇奇怪怪的匹配模式吗 _ 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
|
9月前
|
JavaScript 前端开发 Java
正则表达式深度解析:匹配制表符
【4月更文挑战第2天】
647 2
正则表达式深度解析:匹配制表符
正则中的[^]与通配符里面的[!]的区别
正则中的[^]与通配符里面的[!]的区别
|
9月前
扩展正则圆括号的非转义使用
扩展正则圆括号的非转义使用
43 1
|
9月前
|
C++
正则表达式基础
正则表达式基础
|
自然语言处理 Rust 算法
【算法】10. 正则表达式匹配(多语言实现)
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。
|
网络协议 JavaScript 前端开发
正则表达式、常用的正则
正则表达式、常用的正则
177 1
|
索引
正则的扩展详解
正则的扩展详解
102 0
|
存储 算法 JavaScript
字符串匹配类的问题,尝试正则
字符串匹配类的问题,尝试正则
121 0
|
Linux Python
30 分钟轻松搞定正则表达式基础
30 分钟轻松搞定正则表达式基础