0%
正则基本概念
- 正则基础规则
- 字符模式 (匹配单个字符串)
- 字符组
- [abc] a或b或c (匹配这些字符)
- [^abc]不是 a 或 b 或 c 的其他字符(排除这些字符)
- [a-z] 匹配a-z
- [g-zA-F1-5] 匹配小写 g 到 z、大写 A 到 F、数字 1 到 5
- 转义字符
.
任意字符
\s
空格
\S
非空格
\d
数字
\D
非数字
\w
字符(字母+数字+下划线)
\W
非字符
\t
tab
\n
换行
\r
回车
- 捕获和引用
- 捕获组()
- (hallo) 匹配 hallo,且捕获括号内内容
- (捕获组的捕获顺序,按左括号从左到右为 1234…)
- 正则内引用 \1
- 结果引用 (replace第二参数的特殊字符)
$1
按捕获顺序,例如:abcd.replace(/(ab)/, '$1,')
$&
匹配的整个子串
- $` 匹配子串的左边文本(键盘左侧的反引号)
- $’ 匹配子串的右边文本(键盘右侧的引号)
- $$ 转义 $
- 组合模式(正则串的单次组合)
- 或
|
h(a|e)llo
匹配 hallo 或 hello(切换匹配(并捕获))
- 量词(左边的 a 可以是任意正则模式)
a+
匹配 ‘a、’aa’(至少一个)
a*
匹配 ‘’、’aaa’(零或多个)
a?
匹配 ‘’, ‘a’ (零或一个)
a{3}
匹配aaa
(精确的N个)
a{3,}
匹配 ‘aaa’ 到 ‘aaaaaaa…’ (至少n个)
a{3,6}
匹配 ‘aaa’ 到 ‘aaaaaa’(N 到 M 个)
- 非贪婪 (惰性)
a{3,6}?
匹配 ‘aaa’(非贪婪:匹配到越少越好)
- 位置模式(位置不是字符,不具有宽度)
- 转义字符
^
行开头
$
行结尾
\b
单词边界
\B
非单词边界
- 断言 (其中的 a 可以是任意子正则)
(?=a)
Positive lookahead,右边匹配
(?!a)
Negative lookahead,右边不匹配
(?<=a)
Positive lookbehind,左边匹配
(?<!a)
Negative lookbehind,左边不匹配
- flags
g
global,全部(多次)匹配
i
case-insensitive,忽略大小写
m
multi-line,多行匹配
u
unicode,开启 unicode 支持