下面的表格列出了一个正则表达式中特殊字符的完整列表和描述
基本的元字符
| 元字符 | 说明 |
|---|
. | 匹配任意单个字符 |
| | 逻辑或操作符 |
[] | 匹配字符集合中的一个字符 |
[^] | 对字符集合求非 |
- | 定义一个区间(例如[A-Z]) |
\ | 对下一个字符转义 |
数量元字符
| 元字符 | 说明 |
|---|
* | 匹配前一个字符(子表达式)的零次或多次重复 |
*? | * 的懒惰型版本 |
+ | 匹配前一个字符(子表达式)的一次或者多次重复 |
+? | + 的懒惰型版本 |
? | 匹配前一个字符(子表达式)的零次或者一次重复 |
{n} | 匹配前一个字符(子表达式)的n次重复 |
{m, n} | 匹配前一个字符(子表达式)至少m次且至多n次重复 |
{n, } | 匹配前一个字符(子表达式)n次或者更多次重复 |
{n, }? | {n, } 的懒惰型版本 |
位置元字符
| 元字符 | 说明 |
|---|
^ | 匹配字符串的开头 |
\A | 匹配字符串的开头 |
$ | 匹配字符串的结束 |
\z | 匹配字符串的结束 |
\< | 匹配单词的开头 |
\> | 匹配单词的结束 |
\b | 匹配单词边界(开头和结束) |
\B | \b 的反义 |
特殊字符元字符
| 元字符 | 说明 |
|---|
[\b] | 退格字符 |
\c | 匹配一个控制字符 |
\d | 匹配任意数字字符 |
\D | \d 的反义 |
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\s | 匹配一个空白字符 |
\S | \s 的反义 |
\t | 制表符(Tab字符) |
v | 垂直制表符 |
\w | 匹配任意字母数字字符或下划线字符 |
\W | \w的反义 |
\x | 匹配一个十六进制数字 |
\0 | 匹配一个八进制数字 |
回溯引用和前后查找
| 元字符 | 说明 |
|---|
() | 定义一个子表达式 |
\1 | 匹配第1个子表达式;\2代表第2个子表达式,依次类推 |
?= | 向前查找 |
?<= | 向后查找 |
?! | 负向前查找 |
?<! | 负向后查找 |
?() | 条件(if then) |
?()| | 条件(if then else) |
大小写转换
| 元字符 | 说明 |
|---|
\E | 结束 \L 或者 \U 转换 |
\l | 把下一个字符转换为小写 |
\L | 把后面的字符转换为小写,直到遇见 \E 为止 |
\u | 把下一个字符转换为大写 |
\U | 把后面的字符转换为大写,直到遇见 \E 为止 |
匹配模式
修饰符(标记)
正则表达式有六个可选参数 (flags) 允许全局和不分大小写搜索等。这些参数既可以单独使用也能以任意顺序一起使用,并且被包含在正则表达式实例中。
| 修饰符 | 描述 |
|---|
g | 全局搜索 |
i | 不区分大小写搜索。 |
m | 多行搜索。 |
s | 允许 . 匹配换行符。 |
u | 使用 unicode 码的模式进行匹配。 |
y | 执行“粘性 (sticky)”搜索,匹配从目标字符串的当前位置开始。 |
为了在正则表达式中包含标志,请使用以下语法:
const re = /pattern/flags;
例如:
const re = /a/ig