限定符
有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。
下表给出了各种限定符及其含义的说明:
字符 描述
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。
* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以
及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do"
或 "does" 中的"do" 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob"
中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中
的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o
{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
刘, "o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价
于 'o?'。请注意在逗号和两个数之间不能有空格。
对一个很大的输入文档而言,章节数很轻易就超过九章,因此需要有一种方法来处理两位数或者三位数的章节号。限定符就提供了这个功能。下面的Visual Basic Scripting Edition 正则表达式可以匹配具有任何位数的章节标题:
/Chapter [1-9][0-9]*/
下面的 VBScript 正则表达式执行同样的匹配:
"Chapter [1-9][0-9]*"
请注意限定符出现在范围表达式之后。因此,它将应用于所包含的整个范围表达式,在本例中,只指定了从 0 到 9 的数字。
这里没有使用 '+' 限定符,因为第二位或后续位置上并不一定需要一个数字。同样也没有使用 '?' 字符,因为这将把章节数限制为只有两位数字。在 'Chapter' 和空格字符之后至少要匹配一个数字。
如果已知章节数限制只有99 章,则可以使用下面的 Visual Basic Scripting Edition 表达式来指定至少有一位数字,但不超过两个数字。
/Chapter [0-9]{1,2}/
对 VBScript 可以使用下述正则表达式:
"Chapter [0-9]{1,2}"
正则表达式简介(微软)--11.限定符
时间: 2025-01-19 17:26:42
正则表达式简介(微软)--11.限定符的相关文章
正则表达式简介及在C++11中的简单使用教程
正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分,不仅如此,它还支持了6种不同的正则表达式的语法,分别是:ECMASCRIPT.basic.extended.awk.grep和egrep.其中ECMASCRIPT是默认的语法,具体使用哪种语法我们可以在构造正则表达式的时候指定. 正则表达式是一种文本模式.正则表达式是强大.便捷.高效的文本处理工具.正则表达式本身,加上如同一门
正则表达式简介(微软)--6.优先权顺序
微软|正则 优先权顺序 在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先权顺序来求值. 下表从最高优先级到最低优先级列出各种正则表达式操作符的优先权顺序: 操作符 描述 \ 转义符 (), (?:), (?=), [] 圆括号和方括号 *, +, ?, {n}, {n,}, {n,m} 限定符 ^, $, \anymetacharacter 位置和顺序 | "或"操作
正则表达式简介(微软)--12.定位符
微软|正则 定位符 到现在为止,所看到的示例都只考虑查找任何地方出现的章节标题.出现的任何一个字符串 'Chapter' 后跟一个空格和一个数字可能是一个真正的章节标题,也可能是对其他章节的交叉引用.由于真正的章节标题总是出现在一行的开始,因此需要设计一个方法只查找标题而不查找交叉引用. 定位符提供了这个功能.定位符可以将一个正则表达式固定在一行的开始或结束.也可以创建只在单词内或只在单词的开始或结尾处出现的正则表达式.下表包含了正则表达式及其含义的列表: 字符 描述 ^ 匹配输入字符串的开始位
《叩响C#之门》正则表达式(二)数量限定符
第 20章 正则表达式 20.1 字符匹配 20.2 可选字符集 20.3 或匹配 20.4 数量限定符 20.5 贪婪和懒惰 20.6 定位符 20.7 分组和后向引用 20.8 替换文本 20.9 非捕获分组和预查 1.非捕获分组?: 2.正向预查?= 3.反向预查?<= 4.负正向预查?! 5.负反向预查?<! 6.注释# 20.10 正则表达式的类 20.11 正则表达式的选项 20.12 练习:验证用户输入
正则表达式简介(微软)--8.特殊字符
微软|正则 特殊字符 有不少元字符在试图对其进行匹配时需要进行特殊的处理.要匹配这些特殊字符,必须首先将这些字符转义,也就是在前面使用一个反斜杠 (\).下表给出了这些特殊字符及其含义: 特殊字符 说明 $ 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline属性,则 $ 也匹配 '\n' 或 '\r'.要匹配 $ 字符本身,请使用 \$. ( ) 标记一个子表达式的开始和结束位置.子表达式可以获取供以后使用.要匹配这些字符,请使用 \( 和 \). * 匹配前面的子表
正则表达式教程之限定符和定位符
限定符 有时候不知道要匹配多少字符.为了能适应这种不确定性,正则表达式支持限定符的概念.这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配. 下表给出了各种限定符及其含义的说明: 字符 描述 * 匹配前面的子表达式零次或多次.例如,zo* 能匹配 "z" 以及 "zoo". * 等价于{0,}. + 匹配前面的子表达式一次或多次.例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "
VBS正则表达式简介
这些页包含的信息其目的是提供一个关于正则表达式的通用介绍. 尽管试图让每个主题的内容都比较独立,但这些主题所包含的大部分信息都依赖于对前面所介绍的特性或概念的理解.因此,建议您顺序地仔细阅读这些主题,以便最全面地了解这些材料. "正则表达式简介"包括下述各个主题: 正则表达式 早期起源 使用正则表达式 正则表达式语法 建立正则表达式 优先权顺序 普通字符 特殊字符 非打印字符 字符匹配 限定符 定位符 选择与编组 后向引用
volatile限定符{C}
PS: ...Newbie love coding- Linux_c一站式编程(volatile限定符介绍) linux_c的volatile限定符 现在探讨一下编译器优化会对生成的指令产生什么影响,在此基础上介绍C语言的volatile限定符.看下面的例子: 我们用recv和send这两个全局变量来模拟设备寄存器.假设某种平台采用内存映射I/O,串口发送寄存器和串口接收寄存器位于固定的内存地址,而recv和send这两个全局变量也有固定的内存地址,所以在这个例子中把它们假想成串口接收寄存器和
《正则表达式经典实例(第2版)》——第 1 章 正则表达式简介 1.1正则表达式的定义
第 1 章 正则表达式简介 在你打开这本书的时候,很可能已经热切地期望,要在代码中插入本书中找到的那些包含诸多括号和问号的古怪字符串了.如果你已经准备好要"即查即用",我们非常欢迎,第4-9章中会列出并讲解了各种实用的正则表达式. 但是如果阅读本书的前几章,你将为未来节省大量的时间.例如,本章会向读者介绍许多工具-其中一些工具是本书作者之一的Jan所开发的,这些工具可以帮你事先测试和调试正则表达式,而不用等到把它们塞到代码中之后再处理,那时候查找错误就非常困难了.而且开始这几章还会展示