JS正則表達式進階

貪婪量詞   惰性量詞    支配量詞                      描述
-------------------------------------------------------------------------------------
  ?             ??             ?+                      能夠出現0次或1次,但至多出現1次
  *             *?            *+                      能夠出現任意次,也能夠不出現
  +             +?            ++                      出現1次或屢次,但至少出現1次
  {n}        {n}?           {n}+                   必定出現n次
  {n,m}    {n,m}?       {n,m}+               至少出現n次,但至多不能超過m次
  {n,}       {n,}?          {n,}+                 能夠出現任意次,但至少出現n次 正則表達式

 

JS不支持支配量詞spa

分組:ip

在JavaScript和Java中,捕獲性分組所匹配的內容都是以$1,$2,$3...的格式保存的!字符串

如:test

var now = "25/10/2009";
/(\d\d)\/(\d\d)\/(\d\d\d\d)/.test(now);
alert(RegExp.$3+"-"+RegExp.$2+"-"+RegExp.$1); //2009-10-25變量

1.子正則表達式 形式:/(子正則表達式)/引用

alert(/(\w)\w/.exec('helloword')); //he, h  第一個he是全匹配,第二個h是()裏的子表達式匹配,因此()就是一個子表達式。也就是分組捕獲內容。程序

分組捕獲內容按左小括號計算,$1, $2...word

分組捕獲內容能夠在外部使用,也能夠在正則表達式內部使用(有點象程序變量,這時候叫反向引用)字符集

外部使用:

var v = '1234 5678'.replace(/(\d{4}) (\d{4})/, "$2 $1");
alert(v); //5678 1234;

內部使用:

零寬斷言
正則       名稱       描述
(?=exp) 正向前瞻 匹配exp前面的位置
(?!exp) 負向前瞻 匹配後面不是exp的位置
(?<=exp) 正向後瞻 匹配exp後面的位置不支持
(?<!exp) 負向後瞻 匹配前面不是exp的位置不支持

正向前瞻用來檢查接下來的出現的是否是某個特定的字符集。而負向前瞻則是檢查接下來的不該該出現的特定字符串集。零寬斷言是不會被捕獲的。

相關文章
相關標籤/搜索