正则基础
推荐的在线学习、编写、测试集成工具: https://regexr.com/
字符类
[]
匹配
[]
匹配[aeiou]
示例:
匹配结果: glib jocks vex dwarves!
^
非
^
非[^aeiou]
示例:
匹配结果正好与上一个示例中的互补
-
范围
-
范围示例: [a-z]
表示从 a 到 z 范围内的所有小写字母
.
任意字符
.
任意字符注意,.
表示所有字符(字母、数字、符号),除了:换行
\w
词语(word缩写)
\w
词语(word缩写)等同于: [A-Za-z0-9_]
\W
非词语
\W
非词语等同于: [^A-Za-z0-9_]
\d
数字
\d
数字等同于: [0-9]
\D
非数字
\D
非数字等同于: [^0-9]
\s
空白符
\s
空白符包括:空格、制表符(Tab)、换行
\S
非空白符
\S
非空白符与空白符互补
锚点
^
起始
^
起始示例: /^\d/
表示以数字开头
$
结束
$
结束示例: /\d$/
表示以数字结尾
\b
单词边界
\b
单词边界示例:
\B
非单词边界
\B
非单词边界与 \b
互补
转义字符
\
保留字
\
保留字示例: \\
以字符串匹配 \
\t
Tab
\t
Tab\n
换行
\n
换行其他
非常见的转译字符:
\v
垂直Tab\f
\r
回车\0
Null\cI
\000
八进制\xFF
十六进制\uFFFF
Unicode\u{FFFF}
扩展Unicode
组合
()
捕获分组
()
捕获分组示例: /(ha)+/
匹配重复的 ha
\1
数组引用
\1
数组引用示例: /(\w)a\1/
匹配以a为中间字母的三字叠字词如 dad
, hah
(?:)
非捕获分组
(?:)
非捕获分组依然以分组进行匹配,但不会创建捕获分组。
观望
(?=)
向后匹配
(?=)
向后匹配示例:
(?!)
向后反匹配
(?!)
向后反匹配示例:
数量及替换
+
至少出现一次
+
至少出现一次示例: \d+
*
出现0次或多次
*
出现0次或多次{n,m}
出现n到m次
{n,m}
出现n到m次示例:
\d{3}
指定 3 位数字\d{1,3}
可以是 1 - 3 位数字\d{3,}
可以是 3位或更多位数字
?
至多出现一次(0 或 1)
?
至多出现一次(0 或 1)示例: /colou?r/
匹配 color 和 colour
?
懒匹配
?
懒匹配正常情况下,数量匹配是贪婪匹配,尽可能匹配更多。
示例: /b\w+?/
表示尽可能少的匹配,如beers
匹配结果为be
。
|
或
|
或示例: b(a|e|i)d
子语句
$&
匹配$1
捕获分组$`
前匹配$'
后匹配$$
转义$
符号\n
转义字符
标识
i
忽略大小写g
全局搜索m
多行u
Unicodey
从上次位置继续并忽略g
全局搜索
Last updated