zoukankan      html  css  js  c++  java
  • 第五章 重复匹配

    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, }?
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

  • 相关阅读:
    ObjectC----NSObject常用方法和OC反射机制
    自定义 URL Scheme 完全指南
    一文让你彻底了解iOS字体相关知识
    Objective-C Category 的实现原理[转]
    Objective-C Autorelease Pool 的实现原理[转]
    eclipse无法连接到makertplace
    logstash日志分析的配置和使用
    在CentOS或RHEL防火墙上开启端口
    redhat7下配置tomcat7,更改端口8080后无法访问页面
    Uiautomatorviewer报错:Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationTargetException
  • 原文地址:https://www.cnblogs.com/mumulin99/p/9838538.html
Copyright © 2011-2022 走看看