貪婪量詞 惰性量詞 支配量詞 描述
-------------------------------------------------------------------------------------
? ?? ?+ 能夠出現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的位置不支持
正向前瞻用來檢查接下來的出現的是否是某個特定的字符集。而負向前瞻則是檢查接下來的不該該出現的特定字符串集。零寬斷言是不會被捕獲的。