基本单字符
-
.
代表适配任意单个字符(换行除外)
b..k
book --- 匹配
bok --- 不匹配
-
\s
匹配空白字符、空格、制表符和换行符
bo\sok
book --- 不匹配
bo ok --- 匹配
字符限制
-
[]
限定某一位上字符的取值范围[^]
限定某一位上不能取的值
[a-z]ook
book --- 匹配
Book --- 不匹配
[a-zA-Z0-9]ook
book --- 匹配
Book --- 匹配
5ook --- 匹配
[^a-zA-Z]ook
book --- 不匹配
Book --- 不匹配
5ook --- 匹配
\d
等价于 [0-9]
\D
等价于 [^0-9]
\w
等价于 [a-zA-Z0-9_]
下划线代表可以适配下划线
\W
等价于 [^a-zA-Z0-9_]
匹配数量
-
?
出现0次或1次
bo?k
bk --- 匹配
bok --- 匹配
book --- 不匹配
-
*
出现0次或多次
bo*k
bk --- 匹配
bok --- 匹配
book --- 匹配
-
+
出现1次或多次
bo+k
bk --- 不匹配
bok --- 匹配
book --- 匹配
-
{m,n}
至少出现m次,最多出现n次{m,}
至少出现m次{n}
正好出现n次
bo{2,4}k
bok --- 不匹配
book --- 匹配
booook --- 匹配
boooook --- 不匹配
bo{1,}k
bk --- 不匹配
bok --- 匹配
booooook ---匹配
bo{2}k
bok --- 不匹配
book --- 匹配
boook --- 不匹配
整体
-
|
或
book|hello
book --- 匹配
hello --- 匹配
welcome --- 不匹配
-
()
整体强调
(book){2,3}
book --- 不匹配
bookbook --- 匹配
bookbookbookbook --- 不匹配
行首、行尾
-
^
匹配行首$
匹配行尾
^book
book hello --- 匹配
hello book --- 不匹配
book$
hello book --- 匹配
book hello --- 不匹配
^book$
book hello --- 不匹配
hello book --- 不匹配
book hello book --- 匹配
贪婪和惰性
- 贪婪
b(.*)k // 匹配b和k中间尽量多的字符
bsadfk basasdk bfasdfk 匹配出整个字符串,将所有b和k中间的字符尽可能的匹配出来
- 惰性
b(.*?)k // 匹配b和k中尽量少的字符
bsadfk basasdk bfasdfk 匹配出整个字符串中的bsadfk、basasdk、bfasdfk三部分,因为是匹配尽可能少的字符
版权声明:出自MajorLMJ技术博客的原创作品 ,转载时必须注明出处及相应链接!