美文网首页
regrex扩展

regrex扩展

作者: 陶六六 | 来源:发表于2018-08-20 00:43 被阅读0次

正则的扩展

  1. u修饰符 支持unicode字符匹配

    • .字符能匹配unicode字符
    • unicode字符表示法\u{}
    • 量词能准确匹配双字符unicode字符数量
    • \S等预设字符集包含unicode字符
    • i修饰符能匹配字形相近unicode字符
    • \p{} \P{} 可以匹配指定unicode字符集
  2. y修饰符 全局头部匹配

  3. s修饰符 .字符增加匹配换行符

  4. RegRex原型属性

    • RegExp.prototype.unicode 是否设置u修饰符
    • RegExp.prototype.sticky 是否设置y修饰符
    • RegExp.prototype.dotAll 是否设置s修饰符
    • RegExp.prototype.flags 返回所有设置的修饰符
  5. 环视

        /x(?=y)/.exec('xxyy') //正向肯定环视 [x,index:1]
        /x(?!y)/.exec('xxyy') //正向否定环视 [x,index:0]
        /(?<=x)y/.exec('xxyy') //逆向肯定环视 [y,index:2]
        /(?<!x)y/.exec('xxyy') //逆向否定环视 [y,index:3]
    
        'xxyyy'.replace(/(?<=y)y/g,'x')
        //匹配以原始串匹配,环视可以在当前起始位置之前 xxyxx
    
        /(?<=(\d+)(\d+))$/.exec('1053') // ["", "1", "053"]
        // 逆向环视+字符自右向左贪婪
        /^(\d+)(\d+)$/.exec('1053') // ["1053", "105", "3"]
        // 普通匹配+字符自左向右贪婪
    
        /(?<=(o)d\1)r/.exec('hodor')  // null
        /(?<=\1d(o))r/.exec('hodor')  // ["r", "o"] //反向引用在匹配字符之前
    
  6. 具名组匹配 (?<name>regrex)

        const RE_DATE = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/
        const matchObj = RE_DATE.exec('1999-12-31')
        const year = matchObj.groups.year // 1999
        const month = matchObj.groups.month // 12
        const day = matchObj.groups.day // 31
    
        replace(/(?<name>x)y\k<name>/,'$<name>')
        // 反向引用具名组匹配 \k<name> $<name>
    

tips

  1. .字符匹配所有字符需要us修饰符
        /^.{2}$/.test('𠮷\n') // false
        /^.{2}$/u.test('𠮷\n') // false
        /^.{2}$/s.test('𠮷\n') // false
        /^.{2}$/us.test('𠮷\n') // true
    
  2. regrex括号整理
        /(x)/ //组匹配
        /(?:x)/ //非组匹配
        /(?<name>x)/ //具名组匹配
        /x(?=y)/ // 正向肯定环视
        /x(?!y)/ // 正向否定环视
        /(?<=x)y/ // 逆向肯定环视
        /(?<!x)y/ // 逆向否定环视
    

相关文章

  • regrex扩展

    正则的扩展 u修饰符 支持unicode字符匹配.字符能匹配unicode字符unicode字符表示法\u{}量词...

  • Swift 扩展

    扩展UIView 扩展String 扩展UIColor 扩展UIButton 扩展String 扩展UIImage...

  • ES6扩展

    字符串的扩展正则的扩展数值的扩展数组的扩展函数的扩展对象的扩展

  • ES6扩展

    字符串扩展 正则扩展 数值扩展 函数扩展 对象扩展 数组扩展 字符串扩展 模版字符串 部分新的方法 padStar...

  • Swift--扩展

    扩展的概念 扩展计算属性 扩展方法 扩展构造函数 扩展下标 扩展的概念 在Swift中可以使用一种扩展机制,在原有...

  • 从Java到Kotlin(六)

    扩展与委托 目录 1.扩展 1.1 扩展函数 1.2 扩展属性 1.3 扩展伴生对象 1.4 扩展的作用域 2.委...

  • ES6基础-ES6的扩展

    进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展。 开发环境准备: 编辑器(VS Code, A...

  • Vue项目开发与规范--es6语法规范篇

    目录 简介 let const 解构赋值 正则的扩展 字符串的扩展 数值的扩展 数组的扩展 函数的扩展 对象的扩展...

  • Kotlin-面向对象-进阶

    扩展 扩展方法 Kotlin支持扩展方法和扩展属性。语法:被扩展的类/接口名.方法名() 父类不能使用子类的扩展方...

  • 2021-03-14

    请求链接,稍后更新 扩展点简述 扩展点的生命周期及扩展点的执行时机 扩展点的作用 扩展点实战 更多Spring扩展...

网友评论

      本文标题:regrex扩展

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