本文提供了一份用来快速查看的常用 JavaScript 的正则表达式命令参数。
字符
字符 |
匹配 |
字母和数字 |
自身 |
\o |
NUL字符 |
\t |
制表符 |
\n |
换行符 |
\v |
垂直制表符 |
\f |
换页符 |
\r |
回车符 |
\xnn |
由十六进制数 nn 指定的拉丁字符 |
\uxxxx |
由十六进制数 xxxx 指定的 Unicode 字符 |
\cX |
控制字符 ^X |
字符类
字符 |
匹配 |
[...] |
括号内任意字符 |
[^...] |
不在括号内的任意字符 |
. |
除换行符和其他Unicode行终止符之外的任意字符 |
\w |
任何ASCII字符组成的单词,等价于[a-zA-Z0-9] |
\W |
任何非ASCII字符组成的单词,等价于[^a-zA-Z0-9] |
\s |
任何Unicode空白符 |
\S |
任何非Unicode空白符 |
\d |
任何ASCII数字,等价于[0-9] |
\D |
任何非ASCII数字,等价于[^0-9] |
[\b] |
退格直接量 |
重复
字符 |
含义 |
{n,m} |
匹配前一项至少n次,但不能超过m次 |
{n,} |
匹配前一项n次或者更多次 |
{n} |
匹配前一项n次 |
? |
匹配前一次0次或者1次,等价于{0,1} |
+ |
匹配前一项1次或者多次,等价于{1,} |
* |
匹配前一项0次或者多次,等价于{0,} |
非贪婪匹配模式:??
、+?
、*?
或 {n,m}?
选择、分组和引用
字符 |
含义 |
| |
匹配符号左边的子表达式或右边的子表达式 |
(...) |
组合,将几个项组成一个单元,可用重复符号修饰,并且可以记住匹配的字符串 |
(?:...) |
组合但是不记忆 |
\n |
第n个分组匹配的字符 |
指定匹配位置
字符 |
含义 |
^ |
匹配字符串开头,多行检索时匹配一行的开头 |
$ |
匹配字符串结尾,多行检索时匹配一行的结尾 |
\b |
匹配一个单词的边界位置 |
\B |
匹配非单词的边界位置 |
x(?=y) |
正向断言(Lookahead assertion),当x后跟着y时匹配x |
x(?!y) |
否定正向断言(Negative lookahead assertion),当x后面跟的不是y时才匹配x |
(?<=y)x |
负向断言(Lookbehind assertion),当x在y的后面时匹配x |
(?<!y)x |
否定负向断言(Negative lookbehind assertion),当x不跟着y时才匹配x |
修饰符
字符 |
含义 |
i |
不区分大小写 |
g |
执行全局匹配 |
m |
多行匹配 |