ES5-正則表達式-15.10.2.8 Atom

 在發生比較前,一次不區分大小寫的匹配中全部的字符都會隱式轉換爲大寫。
.
\ AtomEscape
( Disjunction )
( ?:Disjunction ):非捕獲括號,不記住匹配項
( ?=Disjunction ):ide

  使用(?: Disjunction )來避免括號的捕獲行爲。ui

   (? = Disjunction )指定一個零寬正向預查。es5

  爲了保證匹配成功,其 Disjunction 必須首先可以匹配成功,但在匹配後續字符前,其當前位置會不變。若是 Disjunction 能在當前位置以多種方式匹配,那麼只會取第一次匹配的結果spa

( ?!Disjunction ):blog

   (?! Disjunction ) 指定一個零寬正向否認預查。ip

  爲了保證匹配成功,其 Disjunction 必須首先可以匹配失敗,但在匹配後續字符前,其當前位置會不變。io

  Disjunction 能含有捕獲括號,可是對這些捕獲分組的後向引用只在Disjunction中有效。引用

  在當前模式的其餘位置後向引用捕獲分組都會返回undefined。由於否認預查必須知足預查失敗來保證模式成功匹配。
im

 

x(?=y) :匹配'x'僅僅當'x'後面跟着'y'.正向確定查找;developer

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

http://yanhaijing.com/es5/#548

 

 

例子:

  /(?=(a+))/.exec("baaabac") ===》["","aaa"]  猜想:第一個左括號,輸入字符以a開頭,沒找到匹配,第二個捕獲是1-n個a字符,找到匹配,index=1開始的連續三個a字符;即"aaa"

  /(?=(a+))a*b\1/.exec("baaabac") ===》 ["aba","a"]

  /(.*?)a(?!(a+)b\2c)\2(.*)/.exec("baaabaac") ===》 ["baaabaac","ba","undefined","abaac"]

  

 

\b:單詞邊界符  xxx\b結尾  \bxxx開頭   /\w\b\w/不匹配任何字符

\B :非單詞邊界符  

[\b]:匹配一個退格

 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息