我们知道正则表达式中的元字符一次一般只能匹配一个位置或一个字符,如果要匹配一个或
零个或多个字符的时候,则需要使用限定符了。限定符就是允许特定字符或字符集合自身重复出
现的次数。常用的限定符如下表:
限定符
接下来
贪婪匹配限定符
就各个限定符做一些练习:前六种的使用方式都较为简单,是贪婪匹配的
1、匹配“java”字符串至少两次,至多三次
(java){2,3}
2、使用正则表达式匹配国内电话号码,区号+本地号用“-”连接
3、使用正则表达式匹配以158开头的手机号码
懒惰匹配限定符
至于+、*、?就不在练习了原理其实是一样的!
Tips:通过观察上面的表我们可以看出后六中方式只是在后面添加了一个?
这又是怎么一回事呢?
其表示尽可能少的重复字符”?“之前的限定符的重复次数,这种方式成为懒惰匹配就是
后六中方式,前六种与之相对称为贪婪匹配。
懒惰匹配就是匹配尽可能少的字符,至于其具体的用法有什么不同
以一个例子为依据:
1、 字符串为aaababbab时,首先我们考虑贪婪匹配的方式 a.*b
50223_9589.png">
它会以a开头b结尾,尽可能多的匹配字符
2、考虑懒惰匹配方式a.*?b
他同样以a开始b结尾,但是确实尽可能少的匹配,因此最后结果匹配到了三个