zoukankan      html  css  js  c++  java
  • 正则表达式规则

    ^是界定符,表示匹配字符串的开始;
    [+-],中括号表示其内的内容都是符合要求的匹配,所以这个表示“+”或者"-";
    d,[0-9]的简写形式,也就是匹配数字;
    $也是界定符,表示匹配字符串的结束;

    了解以上之后再来看问号(?)和星号(*):跟在一个模式内容后面的是量词,用来限定模式内容匹配的次数,例如我想要匹配最少1个、最多3个数字,例如4、20、123、226这样的,先前已经解释过单个数字可以用[0-9]或者d表示,那么怎么表示最少匹配1次、最多3次呢?很简单,就在模式后面加上大括号配合次数表示量词,形式为{下限,上限},就是这样[0-9]{1,3}或者d{1,3}。类似的,[0-9]{2}就表示只能匹配2个数字(多一个少一个都不行),[0-9]{2,}表示至少要有2个数字最多不限(注意大括号内的逗号),[0-9]{,2}表示最多有2个数字(注意大括号的逗号)。
    针对经常用的量词
    正则中也有简写,{0,1}简写就是问号(要么没有要么只有一次)
    {0,}简写就是星号(随便有没有也不限次数)
    {1,}简写就是加号(至少有一次)

    .*表示任意多个任意字符 例如:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配
    有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复
    a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)
    *、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

    ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合
    () 标记一个子表达式的开始和结束位置

    cx  匹配由x指明的控制字符。例如, cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
    f  匹配一个换页符。等价于 x0c 和 cL。
      匹配一个换行符。等价于 x0a 和 cJ。
      匹配一个回车符。等价于 x0d 和 cM。
    s  匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ f v]。
    S  匹配任何非空白字符。等价于 [^ f v]。
      匹配一个制表符。等价于 x09 和 cI。
    v  匹配一个垂直制表符。等价于 x0b 和 cK。
  • 相关阅读:
    HDU 4346 The Beautiful Road ( 反向考虑 思路题 )
    HTTP 之缓存
    HTTP head meta
    Git远程操作
    git fetch和push的区别
    git 提交 src refspec master does not match any
    git提交远程报错[rejected] master -> master (fetch first)
    (转载)git常用命令
    Git配置和常用命令
    git常用命令(三)
  • 原文地址:https://www.cnblogs.com/wfwenchao/p/6061139.html
Copyright © 2011-2022 走看看