格式 | 说明 |
---|---|
\ | 将下一个字符标记为一个特殊字符,或一个原义字符,或一个向后引用,或一个八进制转义值 |
^ | 匹配输入字符串的开始位置。如果设置了Regexp对象的Multiline属性,^也匹配\n 或 \r 之后的位置 |
. | 匹配除\n外的任何单个字符,要匹配包括\n在内的任何字符,请使用[.\n]模式 |
$ | 匹配输入字符串的结束位置。如果设置了Regexp对象的Multiline属性,$也匹配\n 或 \r 之前的位置 |
x|y | 匹配x或y。|代表”或“,例如,z|food能匹配z或food,(z|f)ood则匹配zood 或 food |
* | 匹配前面子表达式0次或多次,zo*匹配以及zoo,等价于{0, } |
+ | 匹配前面的子表达式1次或多次。zo+匹配zo以及zoo,等价于{1, },代表最少1个o |
? | 匹配前面的子表达式0次或1次 |
{n} | 例如,0{2}匹配food中的两个o |
{n,m} | 最少匹配n次,最多匹配m次 |
[zyz] | 匹配所包含的任意一个字符,例如,[abc]可以匹配plain中的a |
[^xyz] | 负值字符集合。匹配不在指定范围内的任意字符。例如,[^abc]可以匹配plain中的p |
[a-z] | 字符范围。匹配指定范围内的任意字符。例如,[a-z]可以匹配任何不在a到z范围内的小写字母字符 |
\b | 匹配非单词边界,也就是指单词和空格间的位置。例如,er\b 可以匹配 never 中 er,但不能匹配 verb 中的 er |
\B | 匹配非单词边界。er\B能匹配 verb 中的 er,但不能匹配 never 中的 er |
\d | 匹配一个数字。等价于[0-9] |
\D | 匹配一个非数字。等价于[^0-9] |
\f | 匹配一个换页符。等价于 \x0c 和 \cL |
\n | 匹配一个换行符。等价于 \x0a 和 \cJ |
\r | 匹配一个回车符。等价于 \x0d 和 \cM |
\s | 匹配任何空白字符,包扩空格、制表符、换页符等。等价于[\f\n\r\t\v] |
\S | 匹配任何非空字符,等价于[^\f\n\r\t\v] |
\t | 匹配一个制表符,等价于 \x09 和 \cI |
\v | 匹配一个垂直制表符。等价于 \x0b 和 \cK |
\w | 匹配包括下画线的任何单词字符。等价于[A-Za-z0-9_] |
\W | 匹配任何非单词字符。等价于[^A-za-z0-9_] |
\num | 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,(.)\l 匹配两个连续的相同字符 |
\xn | 匹配 n ,其中 n 为十六进制转义值 。十六进制转义值 必须为确定的两个数字长。例如,\x41 匹配 A。\x041 则 等价于 \04 & 1。正则表达式可以使用 ASCII 编码 |
\un | 匹配 n,其中 n 是一个用4个十六进制数字表示的 unicode 字符。例如,\u00A9 匹配板权选符号 |
(pattern) | 匹配括号内 pattern 所代表的表达式,是成组匹配 |
(?=pattern) | 正向预查。例如,windows(?=95/98/2000/NT),含义是匹配windows后面可以是95、98、2000 或者 NT |
("!pattern) | 负向预查。例如,windows(?!95/98),含义是匹配windows后面不是95、98的其它字符串 |
正则表达式主要元字符
于 2025-07-25 15:24:02 首次发布