正则表达式是一个编码字符串。它定义与表达式匹配的字符串集。正则表达式可由一个或多个分支(选项)组成,每个分支可以是由字符、字符类或带有指定重复规则的修改量的括号表达式组成的字符串。
所支持的正则表达式语法是 XML 模式正则表达式的子集。完整的语法,请参阅 万维网协会(W3C) Web 站点上 XML 模式部分 2:数据类型 中的 附录 F。
下表列出了支持的正则表达式语法元素:
元字符 | 含义 |
\ | 转义 |
. | 任何单个字符 |
* | 前导字符 0 或多次 |
+ | 前导字符 1 或多次 |
? | 前导字符 0 或 1 次 |
{...} | 前导的出现1 |
[...] | 与包含的其中一个类匹配 |
[^...] | 与不包含的其中一个类匹配1 |
(...) | 对表达式分组1 |
| | 与前面或后面的匹配 |
转义序列 | 含义 |
\n | 换行 |
\r | 回车 |
\t | 跳格 |
\e | 转义 |
类代码 | 含义 |
\d | 数字 [0-9] |
\D | 非数字 [^0-9] 2 |
\s | 空格 [ \t\n\r] |
\S | 非空格 [^ \t\n\r] 2 |
\p{L} | 所有字母3 |
\p{N} | 所有数字,类似于 \d 4 |
[\p{N}\p{L}] | 所有数字和所有字母,类似于 \w 4 |
\P{L} | 不是字母,等价于 [^\p{L}] |
\P{N} | 不是数字,等价于 [^\p{N}] |
范围 | 含义 |
{n} | 正好 n 次 |
{n,} | 至少 n 次 |
{n,m} | 至少 n 次,但不超过 m 次 |
{0,m) | 零到 m 次 |
下给出了一些正则表达式语法的语法规则示例。请参阅使用正则表达式对数据元素进行解析 以获取一些它们的用法示例。
正则表达式数据模式 | 含义 |
---|---|
a | 与字符“a”匹配 |
. | 与任何一个字符匹配 |
a+ | 与一个或多个“a”的字符串匹配 |
a* | 与零或多个“a”的字符串匹配 |
a? | 与零或一个“a”匹配 |
a{3} | 与正好三个“a”的字符串,即与“aaa”匹配 |
a{3,} | 与三个或多个“a”的字符串匹配 |
a{2,4} | 与最小出现 2 个并且最多出现 4 个“a”的字符串匹配 |
[abc] | 与字符“a”、“b”或“c”中的任何一个匹配 |
[a-zA-Z] | 与范围“a”到“z”或范围“A”到“Z”中的任何一个字符匹配。注意,所匹配的字符范围基于指定的字符的 Unicode。 |
[^abc] | 与除了“a”、“b”或“c”之一的任何字符匹配 |
(ab)+ | 与一个或多个重复的字符串“ab”匹配 |
(ab)|(cd) | 与字符串“ab”或“cd”的任何一个匹配 |