美文网首页
正则的学习

正则的学习

作者: 黄小猛 | 来源:发表于2017-03-28 11:24 被阅读0次

    常用简单元字符

     \bhi\b   \b是用来匹配单词的 匹配两个b之间的单词
     \. 匹配换行符以外任意的字符
     \w 匹配任意字母,数字,下划线
     \s 匹配任何空白字符串, 等价[\f\n\r\t\v]
     \d 匹配数字
     \un 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符
    

    限定符

      * >= 0 次
      ? 0次或1次
      + >=1次
      {n} 出现n次
      {n,} >=n次
      {n, m} 重复n到m次,包括n和m
    

    “非”语义

     \W 大写W,匹配任意不是字母、数字和下划线的字符
     \S 大写S, 匹配任意不是空白字符的字符
     \D 匹配任意非数字字符
     \B 匹配不是单词开始或结束位置
    [^aeiou] 匹配除了aeiou这5个字符以外的字符
    

    "或"语义

      [aeiou] 方括号,aeiou字符中任选一个,方括号可以理解为从方括号里的字符中任选一个
      | 竖线,竖线前后任一正则满足即可,语义类似编程语言的逻辑“或”(短路?)
    

    断言

      ^ 匹配字符串开始的位置
      $ 匹配字符串结束的位置
    
    (?=exp) 匹配一个位置,要求这个位置后面能匹配表达式exp
    (?!exp) 匹配一个位置,要求这个位置后面不能匹配表达式exp
    

    想表达"或"的意思 ------ 字符簇和分歧

        [abc]表示 a、b、c这三个字符中的任意一个  
        [b-f]表示从b到f这么多字符中任选一个
    

    括号的三个作用

    1、括号的第一个作用 ---- 把分组当作一个整体看待
    2、分组匹配到的内容也就是这个分组捕获到的内容,从左往右,以左括号为标志,每个分组会自动拥有一个从1开始的编号,分组捕获到的内容可以通过\分组编号的形式进行后向引用。 (ab|cd)123\1 -- \1就是后向引
    3、括号第三个作用,可以改变优先级
    

    修饰符(匹配选项)

      加g修饰符  表示全局匹配
      加i修饰符   表示不区分大小写
      加m修饰符  表示多行模式 会改变^和$的行为
    

    RegExp 上用来匹配提取的方法 ----- exec()

      var matches = pattern.exec(str);                 //接受一个参数:源字符串  结果数组,在没有匹配项的情况下返回null
    

    RegExp上用来测试匹配成功与否的方法 ----- test()

      var result = pattern.test(str)                // 接受一个参数,源字符串 返回: 找到匹配项 返回true 没找到返回false
    

    String类型上的模式匹配方法

      1、匹配捕获的match方法
    
       str.match(pattern)  => pattern.exec(str)
    
      2、 返回索引search 方法
    
      str.search(pattern) ==> 返回的是 pos  索引的位置
    
      3、查找并替换的replace方法
    
      str.replace(RegExp or String, String or Function);  
      第一个参数(查找)
      第二个参数(替换内容)
    
      第二个参数是一个函数
    
      在只有一个匹配项的情况下,会传递3个参数给这个函数:模式的匹配项、匹配项在字符串中的位置、原始字符串
    
      在有多个捕获组的情况下,传递的参数是模式匹配项、第一个捕获组、第二个、第三个...最后两个参数    是模式的匹配项在字符串位置、原始字符串
    
     这个函数要返回一个字符串,表示要替换掉的匹配项
    

    转义

      前面加一个\ 表示转义
    

    相关文章

      网友评论

          本文标题:正则的学习

          本文链接:https://www.haomeiwen.com/subject/tljonttx.html