基本单字符
-
.
代表适配任意单个字符(换行除外)
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
链接:https://www.jianshu.com/p/faf2bec1ceee
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
ios的正则表达式基本使用
最新推荐文章于 2023-04-04 17:41:59 发布