码迷,mamicode.com
首页 > 编程语言 > 详细

javascript正则表达式

时间:2016-12-11 01:13:42      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:例子   匹配   java   多选   速度慢   com   nbsp   match   strong   

字符

  1. | 指示在两个或多个项之间进行选择。类似js中的或,又称分支条件
  2. / 正则表达式模式的开始或结尾。
  3. \ 反斜杠字符,用来转义。
  4. - 连字符 当且仅当在字符组[]的内部表示一个范围,比如[A-Z]就是表示范围从A到Z;如果需要在字符组里面表示普通字符-,放在字符组的开头即可。
  5. . 匹配除换行符 \n 之外的任何单个字符。
  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

 

 

javascript正则表达式

标签:例子   匹配   java   多选   速度慢   com   nbsp   match   strong   

原文地址:http://www.cnblogs.com/honghong87/p/6158368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!