1. 横向模糊匹配
- 量词
p{m,n}
p至少连续出现m到n次 - 量词有贪婪和惰性的区分
- 贪婪:能满足条件的话,会尽可能的多匹配
(no){1,3} => nonono => 匹配到一次
- 惰性:
(no){1,3}? => nonono => 匹配到三次
- 简写
-
*
等价于{0,}
任意多个 -
+
等价于{1,}
至少一个 -
?
等价于{0,1}
有一个或没有 -
{m}
等价于 {m,m}
-
-
Tip
?
在量词中可能有两个含义,在量词之后才表示惰性匹配
2. 纵向模糊匹配
- 字符集
[ou]
集合-
[ou]
匹配o或者u -
[a-e]
匹配 abcde -
[^a-e]
匹配不是a-e的字符(^
取反)
-
- 简写
-
\d
等价于[0-9]
-
\D
等价于[^0-9]
-
\w
等价于[0-9a-zA-Z_]
表示数字、大小写字母和下划线。word的首字母,也称单词字符。 -
\W
等价于[^0-9a-zA-Z_]
-
\s
等价于[ \t\v\n\r\f]
表示空白符,包括空格、水平制表符、垂直制表符、换行符、回车符、换页符。记忆方式:s是space character的首字母。 -
\S
等价于[^ \t\v\n\r\f]
-
.
等价于[^\n\r\u2028\u2029]
点是通配符,表示几乎任意字符(除了换行符、分隔符)。
-
3. 匹配一个具体的位置
- 单词边界
\b
一边是单词字符,一边是非单词字符 - 非单词边界
\B
- 行开头
^
- 行结尾
$
- 断言位置
(?=p)
模式p前面的位置 - 反向断言
(?<=p)
模式p后面的位置 - 反义
(?!p)
模式p的反义
4. 修饰符
-
/g
全局匹配 -
/i
忽略大小写 -
/m
多行匹配
5. 引用
- 反向引用
\1
第1(n)个括号里补获的数据
6. 分支结构
- 管道符
|
或