。 |
匹配任意单字符。 |
[ ] |
表示字符类。匹配括号内的任意字符(例如,[abc] 匹配 "a"、"b" 和 "c")。 |
^ |
如果此元字符出现在字符类开头,则它表示否定该字符类。否定的字符类表示与括号内字符以外的任何字符均匹配(例如,[^abc] 匹配除除 "a"、"b" 和 "c" 以外的所有字符)。 如果 ^ 在正则表达式开头,则它匹配输入的开头(例如,^[abc] 将仅匹配以 "a"、"b" 或 "c" 开头的输入)。 |
- |
表示字符类中的字符范围(例如,[0-9] 匹配 "0" 到 "9" 之间的任意数字)。 |
? |
表示前面的表达式为可选:匹配 1 次还是完全不匹配(例如,[0-9][0-9]? 匹配 "2" 和 "12")。 |
+ |
表示前面的表达式匹配 1 次或多次(例如,[0-9]+ 匹配 "1"、"13"、"456" 等等)。 |
* |
表示前面的表达式匹配 0 次或多次。 |
??、+?、*? |
非穷尽版本的 ?、+ 和 *。与非贪婪版本匹配尽可能多不同,这些版本匹配尽可能少(例如,给定输入"<abc><def>",<.*?> 匹配 "<abc>" 而 <.*> 匹配 "<abc><def>")。 |
( ) |
分组操作符。示例:(\d+,)*\d+ 匹配用逗号分隔的一系列数字(例如 "1" 或 "1,23,456")。 |
{ } |
表示一个匹配组。 |
\ |
转义字符:按字面解读下一字符(例如,[0-9]+ 匹配一个或多个数字,但 [0-9]\+ 匹配后面接 + 字符的数字)。同样用于缩写(如 \a 对于任意字母数字字符,见下表)。
如果 \ 后接数字 n,则它匹配第 n 个匹配组(从 0 开始)。示例:<{.*?}>.*</\0> 匹配 "<head>内容</head>"。
|
$ |
在正则表达式末尾,此字符匹配输入末尾(例如,[0-9]$ 匹配输入末尾处的数字)。 |
| |
管道符:分隔两个表达式,其中之一精确匹配(例如,T|the 匹配 "The" 或 "the")。 |
! |
否定运算符:! 后接表达式不匹配输入(例如,a!b 匹配后面不接 "b" 的 "a")。 |