美文网首页
正则表达式

正则表达式

作者: 秋枫残红 | 来源:发表于2017-11-12 18:50 被阅读0次

    界定符

    • 在js中界定符为/
    • 界定符并不作为正则表达式的一部分,只是便于解析器识别正则表达式

    原子

    • 在正则表达式中原子作为最小匹配单位,分为可见原子和不可见原子

    可见原子

    • 就是任何Unicode编码表可以找到的可见字符
      • 标点符号
      • 数字,字母
      • 汉语,日语,阿拉伯语等象形文字
      • Φ,δ,β,γ等数理化符号

    不可见原子

    • 就是任何Unicode编码表可以找到的不可见字符
      • \n 换行
      • \r 回车
      • \t 水平制表
      • 空格
      • 其他

    元字符

    • 筛选原子
      • |选择关系,可以理解为or
      • [],匹配方括号中的任意一个字符
      • [^ ]匹配除过方括号内的任意一个字符
    • 表示原子的集合
      • . 除换行符之外的任意一个字符
      • \d 匹配任意一个十进制数字
      • \D 匹配任意一个十进制数字
      • \s 匹配任意一个不可见原子
      • \S 匹配任意一个可见原子
      • \w 匹配任意一个字母数字下划线
      • \W ......

    量词

    • 定义原子匹配次数
      • {n} 匹配原子出现n次
      • {n,m} 匹配原子出现n~m次
      • {n,} 匹配原子出现n次以上
      • * 匹配原子出现{0,}次
      • + 匹配原子出现{1,}次
      • 匹配原子出现{0,1}次

    边界控制

    • 用于指定模式的边界条件
      • ^ 开头
      • $ 结尾
      • () 将括号部分看做一个原子(模式单元)

    贪婪模式和懒惰模式

    • 正则表达式在匹配时会尽可能多的匹配符号模式的字符串,举个例子
    '123456789'.replace(/\d{2,5}/g,'x');
    //xx
    
    • 懒惰模式正好相反,当存在冲突时,尽可能的少匹配
    '123456789'.replace(/\d{2,5}?/g,'x');
    //xxxx9
    

    修正模式

    • i 忽略大小写
    • g全局匹配
    • m多行匹配

    测试地址

    相关文章

      网友评论

          本文标题:正则表达式

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