`

正则表达式笔记

阅读更多

正则表达式:
    元字符 (metacharacter)
  
           
    .    (英文的句号) 匹配除了换行符以外的任意字符
   
   
    限定符   主要处理匹配次数,其中 * + ?为贪婪匹配 (意思为在符合匹配条件的时候尽可能多的匹配,可以使用?来取消贪婪,费贪婪模式匹配尽可能少)
   
    *       匹配前面的子表达式零次或多次。等价于 {0,}
    +       匹配重复1次或更多次。等价于{1,}  如:\d+匹配1个或更多连续的数字
    ?       匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
    {n}     n 是一个非负整数。匹配确定的 n 次。
    {n,}    n 是一个非负整数。至少匹配n 次。
    {n,m}   m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
   
   
   
    字符类匹配
    \d      匹配一位数字 0\d\d-\d\d\d\d\d\d\d\d  零开头的三位区号的电话号码  或 0\d{2}-\d{8} 表示必须连续重复匹配2(8)次。
    \D      匹配一个非数字字符。等价于 [^0-9]。
    \w      匹配字母或数字或下划线或汉字等。
   
   
   
    定位符   描述字符串、单词的边界。
    ^       匹配字符串的开始,除非在方括号表达式中使用,此时它表示不接受该字符集合。
    $       匹配字符串的结束
            ^和$的作用如下:如果不使用^和$的话,对于\d{5,12}而言,使用这样的方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字。
            如 没有^$则 abc12345abc  defff1234567ddd 都可以进行匹配。如果加上则只能匹配 12345 123456789 这些纯数字。
   
    \b      代表单词的单词的开头或结尾,也就是单词的分界处。但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。 \bhi\b 匹配hi
    \B      匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
   
   
   
   
    小括号   (pattern) 一般与 | 搭配使用
    ()      匹配 pattern 并获取这一匹配。可以缓存
    (?:)    匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式
    (?=)    正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。
    (?!)    负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。
   
   
    中括号   []
    [xyz]   字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
    [^xyz]  负值字符集合。匹配未包含的任意字符。
    [a-z]   字符范围。匹配指定范围内的任意字符。 匹配a到z任意一个小写字符
    [^a-z]  负值字符范围。匹配任何不在指定范围内的任意字符。
   
   
   
    特殊字符
    \cx     匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。
            x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
           
    \f      匹配一个换页符。等价于 \x0c 和 \cL。
    \n      匹配一个换行符。等价于 \x0a 和 \cJ。
    \r      匹配一个回车符。等价于 \x0d 和 \cM。
    \s      匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
    \S      匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
    \t      匹配一个制表符。等价于 \x09 和 \cI。
    \v      匹配一个垂直制表符。等价于 \x0b 和 \cK。
    \       将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics