正则表达式

基本单字符

  • . 代表适配任意单个字符(换行除外)
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技术博客的原创作品 ,转载时必须注明出处及相应链接!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容