“正则表达式”描述在搜索文本正文时要匹配的一个或多个字符串。 正则表达式可用作与要搜索的文本相比较的字符模式。
正则表达式的结构与所创建的算术表达式的结构类似。 较大的表达式可由小的表达式通过使用各种元字符和运算符进行组合而创建。
正则表达式的各组成部分可以是单个字符、字符集、字符范围或在几个字符之间选择。 也可以是这些组成部分的任意组合。
除普通字符之外,正则表达式还可以包含“元字符”。 例如,元字符 \d,它与数字字符相匹配。
有关更多信息,请参见正则表达式语法。
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。 这包括所有大小写字母、所有数字、所有标点符号和一些符号。
可以通过在方括号 [ ] 中放置一个或多个单个字符,创建匹配字符的列表。
括号表达式中的任何字符均仅与正则表达式中紧邻括号表达式的单个字符相匹配。 例如,/Chapter [12345]/ 表达式匹配“Chapter 1”、“Chapter 2”、“Chapter 3”、“Chapter 4”和“Chapter 5”。
要使用范围代替字符本身来表示匹配字符,可以使用连字符 (-)。 表达式 /Chapter [1-5]/ 与 /Chapter [12345]/ 等效。
若要查找不在列表或范围内的所有字符,请将插入符号 (^) 放在列表的开头。 例如,表达式 /[^aAeEiIoOuU]/ 匹配任何非元音字符。
有关更多信息,请参见匹配字符的列表。
可以使用“限定符”指定其中的单个字符或字符集重复指定次数的正则表达式。
限定符引用在其前面并与其紧邻(左侧)的表达式。
限定符位于大括号 {} 中,并包含指示出现次数上下限的数值。 例如,c{1,2} 匹配 1 个或 2 个字母 c。
仅指定一个数字时,除非其后紧跟一个逗号,否则表示上限。 例如,c{3} 匹配 3 个字符 c,而 c{5,} 匹配 5 个或更多字母 c。
还可以使用单字符限定符,如下表所示。
限定符 | 显式限定符 | 含义 |
---|---|---|
* | {0,} | 匹配上一个元素零次或多次。 |
+ | {1,} | 匹配上一个元素一次或多次。 |
? | {0,1} | 匹配前面的元素零次或一次。 |
以下是一些表达式示例及其匹配的搜索字符串。
正则表达式 | 限定符的含义 | 匹配 |
---|---|---|
/Chapter [1-9][0-9]{0,}/ 或 /Chapter [1-9][0-9]*/ | 匹配 [0-9] 零次或多次。 | “Chapter 1”、“Chapter 25”、“Chapter 401320” |
/Chapter [0-9]{1,2}/ | 匹配 [0-9] 一次或两次。 | “Chapter 0”、“Chapter 03”、“Chapter 1”、“Chapter 25”、“Chapter 40” |
/Chapter [1-9][0-9]{0,1}/ 或 /Chapter [1-9][0-9]?/ | 匹配 [0-9] 零次或一次。 | “Chapter 1”、“Chapter 25”、“Chapter 40” |
有关更多信息,请参见 JScript 中的限定符。
“|”字符指定表示匹配的两个或多个替换项。 例如,JScript 正则表达式 /(Chapter|Section) [1-9]/ 匹配以下内容:“Chapter 1”、“Chapter 9”和“Section 2”。 有关更多信息,请参见替换和子表达式。
在正则表达式中使用括号可创建子表达式。 程序可检索生成的子匹配项。 有关更多信息,请参见替换和子表达式。
可以从正则表达式和替换字符串中引用子表达式。 有关更多信息,请参见 JScript 中的反向引用。