REGULAR

  1. 视频讲解

  2. 元字符

     \           转义
     ^           起始符 设置Multiline属性将跨行匹配
     $           终止符 设置Multiline属性将跨行匹配
     *           子表达式零次或多次,等价于{0,}
     +           子表达式一次或多次,等价于{1,}
     ?           子表达式零次或一次,等价于{0,1}
     ?           (*, +, ?, {n}, {n,}, {n,m})之后加?表示取消贪婪匹配
     {n}         子表达式n次,等价于{n,n}
     {n,}        子表达式n次或大于n次
     {n,m}       子表达式n次到m次
     .           匹配除 "\n" 之外的任何单个字符,要匹配'\n'请使用"(.|\n)"
     ()          匹配 pattern 并获取这一匹配
     x|y         匹配 x 或 y
     [xyz]       匹配所包含的任意一个字符
     [^xyz]      匹配未包含的任意字符
     [a-z]       匹配指定范围内的任意字符
     [^a-z]      匹配不在指定范围内的任意字符
     \b          匹配单词边界,也就是指单词和空格间的位置,'45\b'可以匹配"12345" 中的 '45',但不能匹配 "123456" 中的 '45'
     \B          匹配非单词边界,也就是指单词和空格间的位置,'45\B' 能匹配 "123456" 中的 '45',但不能匹配 "12345" 中的 '45'
     \cx         其中x是自己指定的一个字符,必须为a-z或A-Z,否则,将x视为一个原义的'x'字符
     \d          匹配数字字符,等价于 [0-9]
     \D          匹配非数字字符,等价于 [^0-9]
     \f          匹配一个换页符,等价于\x0c和\cL
     \n          匹配一个换行符,等价于\x0a和\cJ
     \r          匹配一个回车符,等价于\x0d和\cM
     \t          匹配一个制表符,等价于\x09和\cI
     \v          匹配一个垂直制表符,等价于\x0b和\cK
     \s          匹配任何空白字符,等价于[ \f\n\r\t\v]
     \S          匹配任何非空白字符,等价于[^ \f\n\r\t\v]
     \w          匹配字母、数字、下划线,等价于[A-Za-z0-9_]
     \W          匹配非字母、数字、下划线,等价于[^A-Za-z0-9_]
     \xn         匹配n,n为十六进制转义值
     \un         匹配n,其中n是一个用四个十六进制数字表示的Unicode字符
     \n          标识一个八进制转义值或一个向后引用,如果\n之前至少n个获取的子表达式,则n为向后引用。如果n为(0-7),则n为一个八进制转义值
     \nm         标识一个八进制转义值或一个向后引用,如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n 为一个后跟文字m的向后引用。
                 如果前面的条件都不满足,若n和m均为(0-7),则\nm将匹配八进制转义值nm
     \nml        如果n为八进制数字(0-7),且m和l均为八进制数字(0-7),则匹配八进制转义值nml
     \num        匹配num,其中num是一个正整数,对所获取的匹配的引用。'(.)\1'匹配两个连续的相同字符
     (?:pattern)    匹配pattern但不获取匹配结果
     (?=pattern)    正向肯定预查(look ahead positive assert),在任何匹配pattern的字符串开始处匹配查找字符串,这是一个非获取匹配,该匹配不需要获取供以后使用
     (?!pattern) 正向否定预查(look ahead negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串,这是一个非获取匹配,该匹配不需要获取供以后使用
     (?<=pattern)反向肯定预查(look behind positive assert),与正向肯定预查类似,只是方向相反。
     (?<!pattern)反向否定预查(look behind negative assert),与正向否定预查类似,只是方向相反。
    
  3. 运算符优先级

     \                         转义符
     (), []                    圆括号和方括号
     *, +, ?, {n}, {n,}, {n,m} 限定符
     ^, $, \                   任何元字符、任何字符,定位点和序列(位置和顺序)
     |                         或
    
  4. 匹配规则

    
    
    
@耿志环 2012-∞ 冀ICP备17033181号, powered by Gitbook修订: 2019-09-09 09:45:22

results matching ""

    No results matching ""