字符 | 含意 |
\ | 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 |
^ | 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" |
$ | 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A" |
* | 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa |
+ | 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa |
? | 匹配前面元字符0次或1次,/ba*/将匹配b,ba |
(x) | 匹配x保存x在名为$1...$9的变量中 : 例如,/( [' "] ) [^ ' "] * \1/ |
x|y | 匹配x或y (/ab|cd|ef/ 匹配的是字符串 "ab",或者是字符串 "cd",又或者 "ef"; / (ab|cd) + |ef) / 匹配的既可以是字符串 "ef",也可以是字符串"ab" 或者 "cd" 的一次或多次重复) 注意|的边界 |
{n} | 精确匹配n次 |
{n,} | 匹配n次以上 |
{n,m} | 匹配n-m次 |
[xyz] | 字符集(character set),匹配这个集合中的任一一个字符(或元字符) |
[^xyz] | 不匹配这个集合中的任何一个字符 |
[\b] | 匹配一个退格符 (特例) |
\b | 匹配一个单词的边界; \b 匹配的是一个词语的边界,也就是处于一个/w字字符和一个\w非字字符之间的边界. 它并不是实际的字符. |
\B | 匹配一个单词的非边界 |
\cX | 这儿,X是一个控制符,/\cM/匹配Ctrl-M |
\d | 匹配一个字数字符,/\d/ = /[0-9]/ |
\D | 匹配一个非字数字符,/\D/ = /[^0-9]/ |
\n | 匹配一个换行符 |
. | 除了换行符之外的任意字符,等价于[^\n] |
\r | 匹配一个回车符 |
\s | 匹配一个空白字符,包括\n,\r,\f,\t,\v等 |
\S | 匹配一个非空白字符,等于/[^\n\f\r\t\v]/ |
\t | 匹配一个制表符 |
\v | 匹配一个重直制表符 |
\w | 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9] |
\W | 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。 |
\f 换页符
\n 换行符
\r 回车
\t 制表符
\v 垂直制表符
\/ 一个 / 直接量
\\ 一个 \ 直接量
\. 一个 . 直接量
\* 一个 * 直接量
\+ 一个 + 直接量
\? 一个 ? 直接量
\| 一个 | 直接量
\( 一个 ( 直接量
\) 一个 ) 直接量
\[ 一个 [ 直接量
\] 一个 ] 直接量
\{ 一个 { 直接量
\} 一个 } 直接量
\XXX 由十进制数 XXX 指 定的ASCII码字符
\Xnn 由十六进制数 nn 指定的ASCII码字符
\cX 控制字符^X. 例如, \cI等价于 \t, \cJ等价于 \n