ios的正则表达式基本使用

 
 

基本单字符

  • . 代表适配任意单个字符(换行除外)
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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值