zoukankan      html  css  js  c++  java
  • javascript正则表达式

    字符

    1. | 指示在两个或多个项之间进行选择。类似js中的或,又称分支条件
    2. / 正则表达式模式的开始或结尾。
    3.  反斜杠字符,用来转义。
    4. - 连字符 当且仅当在字符组[]的内部表示一个范围,比如[A-Z]就是表示范围从A到Z;如果需要在字符组里面表示普通字符-,放在字符组的开头即可。
    5. . 匹配除换行符 之外的任何单个字符。
    6. d 等价[0-9],匹配0到9字符。
    7. D 等价[^0-9],与d相反。
    8. w 与以下任意字符匹配:A-Z、a-z、0-9 和下划线,等价于 [A-Za-z0-9]。
    9. W 与w相反,即 [^A-Za-z0-9]

    限定符(量词字符)

    显示限定符位于大括号 {} 中,并包含指示出现次数上下限的数值;*+? 这三个字符属于单字符限定符

    1. {n} 正好匹配 n 次。
    2. {n,} 至少匹配 n 次。
    3. {n,m} 匹配至少 n 次,至多 m 次。
    4. * 等价{0,}
    5. + 等价{1,}
    6. ? 等价{0,1}

    正则表达式是有优先级的

    1.  转义符
    2. (), (?!), (?=), [] 括号和中括号
    3. *、+、?、{n}、{n,}、{n,m} 限定符
    4. 任何元字符^、$、 定位点和序列
    5. | 替换

    JS 是 NFA 引擎。
    NFA 引擎的特点:

    • 以贪婪方式进行,尽可能匹配更多字符。
    • 急于邀功请赏,所以最左子正则式优先匹配成功,因此偶尔会错过最佳匹配结果(多选条件分支的情况)。
    • 回溯(backtracking),导致速度慢。

    举个贪婪与回溯结合的例子:

    "AB01CD2AB3CD45CEff".match('AB.*CD')

    // 返回 ["AB01CD2AB3CD"]
     

    来自 http://web.jobbole.com/89221/?utm_medium=hao.caibaojian.com&utm_source=hao.caibaojian.com

  • 相关阅读:
    JMM简述
    spring简读
    Linux常用命令
    基于java的八大排序实现
    数据库事务说明
    BIO、NIO、AIO区别与联系
    ThreadLocal 是什么?有哪些使用场景?
    ConcurrentHashMap 和 Hashtable 比较,为什么推荐使用ConcurrentHashMap?
    sychronized设计原理
    MySQL索引详解
  • 原文地址:https://www.cnblogs.com/honghong87/p/6158368.html
Copyright © 2011-2022 走看看