正则表达式中的普通字符与自身匹配。普通字符是描述为特殊字符之外的字符。
( ) [ ] ^ $ . * + ? | \
特殊字符影响正则表达式的匹配行为(如下表所述)。匹配任意长度字符的序列的构造(例如 * + ?)始终匹配允许匹配项的左侧最长的字符串。
字符 | 含义 | 示例 |
---|---|---|
^ | 匹配字符串的开头部分 | "^abc" 与以 abc 开头的字符串匹配 |
$ | 匹配字符串的结尾 | "abc$" 与以 abc 结尾的字符串匹配 |
. | 匹配任何单个字符 | "a.c$" 与包含 abc、axc 等的字符串匹配 |
* | 匹配零个或更多个紧挨的前项表达式 | "ab*c$" 与包含 ac、abc、abbc 等的字符串匹配 |
+ | 匹配一个或多个紧挨的前项表达式 | "a+c$" 与包含 abc、abbc 或 aggc 的字符串匹配,但不与包含 ac 的字符串匹配 |
? | 匹配零个或一个紧挨的前项表达式 | "ab?c" 与包含 ac 或 abc 的字符串匹配 |
| | 匹配前项表达式或后项表达式。 | "a|b|c" 与包含 a、b 或 c 的字符串匹配 |
[ ] | 匹配方括号中列出的任何单个字符 | "[ab]c" 与包含 ac 或 bc 的字符串匹配 |
[^ ] | 匹配方括号中未列出的任何单个字符 | "a[^b]c" 与包含 axc(其中 x 替换为除 b 之外的任何字符)的字符串匹配 |
\ | 转义后面紧挨的字符。要在字符串中嵌入反斜杠字符,字符串字面值必须包含两个连续的反斜杠。 | "a\.c$" 与包含 a.c 的字符串匹配,"a\\c$" 与包含 a\c 的字符串匹配 |
( ) | 划分子表达式界限 | "a(b|c)*d*" 与包含 a 并且后跟任意数量的 b 或 c 再后跟 d 的字符串(如 "ad" 或 "acbbccd")匹配 |