第五章 重复匹配

5.1 有多少个匹配
 
5.1.1 匹配一个或多个字符
想要匹配同一个字符(或字符集合)的多次重复,只要简单的给这个字符(或字符集合)加上一个+字符作为后缀就行了。
 
+匹配一个或多个字符(至少一个;不匹配零个字符的情况)
 
+是一个元字符,如果需要匹配+本身,就必须使用它的转义系列\+
 
例子:匹配电子邮件地址
 
[\w.]+@[\w.]+\.\w+
[\w.]+@[\w.]+\.[\w.]+
备注:最后一个[\w.]+考虑到有些邮件地址会有多层域名(或主机名)
 
一般来说,当在字符集合里使用的时候,像.和+这样的元字符将会被解释为普通字符,不需要被转义,但转义了也没坏处。
 
 
5.1.2 匹配零个或多个字符
如果想要匹配一个可有可无的字符(该字符出现零次或出现多次),只要在该字符(或字符集合)的后面加上*后缀就行。
 
例子:匹配电子邮件地址
\w+[\w.]*@\.\w+
 
*是一个元字符,如果需要匹配*本身,就必须使用它的转义系列\*
 
5.1.3 匹配零个或一个字符
?只能匹配一个字符(或字符集合)的零次或一次出现,最多不超过一次。
 
例子:匹配一个URL地址
http[s]?://[\w./]+
 
?是一个元字符,如果需要匹配?本身,就必须使用它的转义系列\?
 
5.2 匹配的重复次数
正则表达式提供了一个用来设定重复次数(interval)的语法。重复次数要用{和}字符来给出,把数值写在它们之间。
 
{和}是一个元字符,如果需要匹配{和}本身,就必须使用它的转义系列\{和\}
 
5.2.1 为重复匹配次数设定一个精确的值
将数值写在{和}之间即可。如{3}
 
例子:匹配RGB值
#[0-9A-Fa-f]{6}
#[[:xdigit:]]{6}
 
5.2.2 为重复匹配次数设定一个区间
{}语言可以用来为重复匹配次数设定一个区间,也就是为重复匹配次数设定一个最小值和最大值。如{2,4},最少重复2次,最多重复4次。
 
例子:检查日期格式是否正确
[\d]{1,2}[-\ /][\d]{1,2}[-\ /][\d]{2,4}
 
5.2.3 匹配“至少重复多少次”
{3,}表示至少重复3次,等价于“必须重复3次或更多次”
 
 
5.3 防止过度匹配
 
常见的贪婪型元字符和它们的懒惰型版本
 
 
贪婪型元字符
懒惰型元字符
*
*?
+
+?
{n, }
{n, }?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/mumulin99/p/9838538.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值