要创建正则表达式,您必须使用特定语法,即一些特殊字符和构建规则。例如,以下是一个简单的正则表达式示例,可以匹配任意一个 nnn-nnn-nnnn 格式的 10 位电话号码:
\d{3}-\d{3}-\d{4}
下表介绍了正则表达式中常用的一些特殊字符。这些字符分为以下几类:
| 字符数 | 说明 |
|---|---|
| 锚点 | |
| ^ | (脱字符号)匹配行首或正则表达式搜索的字符串的开头。例如,如果某条内容规则包含“主题行”位置和以下正则表达式: ^abc ,则会捕获所有主题行以字母 abc 开头的电子邮件 |
| $ | (美元符号)匹配行尾或正则表达式搜索的字符串的末尾。例如,如果某条内容规则包含“主题行”位置和以下正则表达式: xyz$ ,则会捕获所有主题行以字母 xyz 结尾的电子邮件 |
| 元字符 | |
| 。 | (圆点)匹配除换行符以外的任意单个字符。 |
| | | (竖线)表示备选项,即“或”。例如: cat|dog 匹配字词 cat 或 dog |
| \ | 表示下一个字符是文字字符,而非特殊字符。例如: \. 匹配一个句点,而非任意字符(参见上述圆点字符) |
| 字符类 | |
| [...] | 匹配某一字符集中的任意字符。在字符集中可使用短划线分隔第一个字符和最后一个字符。例如: [123] 匹配数字 1、2 或 3 [a-f] 匹配 a 到 f 之间的任意字符 注意:“内容合规性”政策中的正则表达式区分大小写。 |
| [^...] | 匹配某一字符集以外的任意字符。例如: [^a-f]匹配 a 至 f 以外的任意字符 注意:“内容合规性”政策中的正则表达式区分大小写。 |
| [:alnum:] | 匹配字母或数字: a-z、A-Z 或 0-9 注意:在正则表达式中使用此字符类时,必须将其以另外一组方括号括起,例如:[[:alnum:]]。 |
| [:alpha:] | 匹配字母: a-z 或 A-Z 注意:在正则表达式中使用此字符类时,必须将其以另外一组方括号括起,例如:[[:alpha:]]。 |
| [:digit:] | 匹配数字: 0-9 注意:在正则表达式中使用此字符类时,必须将其以另外一组方括号括起,例如:[[:digit:]]。 |
| [:graph:] | 仅匹配可见字符,即空格、控制符等以外的所有其他字符。 注意:在正则表达式中使用此字符类时,必须将其以另外一组方括号括起,例如:[[:graph:]]。 |
| [:punct:] | 匹配标点字符和符号: ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } 注意:在正则表达式中使用此字符类时,必须将其以另外一组方括号括起,例如:[[:punct:]]。 |
| [:print:] | 匹配可见字符和空格。 注意:在正则表达式中使用此字符类时,必须将其以另外一组方括号括起,例如:[[:print:]]。 |
| [:space:] | 匹配所有空白字符,包括空格、制表符和换行符。 注意:在正则表达式中使用此字符类时,必须将其以另外一组方括号括起,例如:[[:space:]]。 |
| [:word:] | 匹配任意字词字符,即任意字母、数字或下划线: a-z、A-Z、0-9 或 _ 注意:在正则表达式中使用此字符类时,必须将其以另外一组方括号括起,例如:[[:word:]]。 |
| 缩略字符类 | |
| \w | 匹配任意字词字符,即任意字母、数字或下划线: a-z、A-Z、0-9 或 _ 与 [:word:] 作用相同 |
| \W | 匹配任意非字词字符,即字母、数字或下划线以外的任意字符。 与 [^[:word:]] 作用相同 |
| \s | 匹配任何空白字符。例如,使用此字符指定短语中两个字词之间的空格: stockstips 匹配短语 stock tips 与 [:space:] 作用相同 |
| \S | 匹配空白字符以外的任意字符。 等效于 [^[:space:]] |
| \d | 匹配 0-9 中的任意数字。 与 [:digit:] 作用相同 |
| \D | 匹配 0-9 以外的任意字符。 与 [^[:digit:]] 等效 |
| Group | |
| (...) | 将表达式的不同部分归入不同的分组。利用分组,您可以为某个分组分配一个量词,也可以在某个分组的前后匹配字符类。 |
| 量词 | |
| {n} | 准确匹配前一个表达式 n 次。例如: [a-c]{2} 匹配 a 到 c 之间的任意字母,前提是这些字母连续出现两次。因此,该表达式会匹配 ab 和 bc,而不会匹配 abc 或 aabbc。 |
| {n,m} | 匹配前一个表达式最少 n 次,最多 m 次。例如: [a-c]{2,4} 匹配 a 到 c 之间的任意字母,前提是这些字母连续至少出现 2 次且最多出现 4 次。因此,该表达式会匹配 ab 和 abc,而不会匹配 aabbc。 |
| ? | 表示前一个字符或表达式可以匹配 0 次或 1 次。与范围 {0,1} 作用相同。例如,以下正则表达式: colou?r 既匹配 colour,也匹配 color,因为 ? 的存在使得字母 u 成为可选项。 |