1. 程式人生 > >JS正則表達式之--?:

JS正則表達式之--?:

正則表達 冒號 由於 http img bsp 分享圖片 image -c

使用形如(?:pattern)的正則就可以避免保存括號內的匹配結果。

?:匹配冒號後的內容但是不獲取匹配結果;不進行儲存供以後使用

下面這個正則是為了實現只匹配以b或者c開頭的字符串,一直匹配到換行字符,但是。可以使用“\1”來反向引用這個括號裏的子 正則表達式所匹配的內容。而且exec方法也會將這個字正則表達式的匹配結果保存到返回的結果中。

(1)reg = /^(b|c).+/;

str=‘bbs.blueidea.com‘;

技術分享圖片

(2)reg = /^(?:b|c).+/;

str=‘bbs.blueidea.com‘;

技術分享圖片

下面還要註意一點就是一個括號裏面還有括號:

例如:(()())代表的是三個子表達式

技術分享圖片

(3)

技術分享圖片

(4)

reg = /^(?:b|c)\1/;

str=‘bbs.blueidea.com‘;

返回null。由於根本就沒有記錄括號內匹配的內容,自然沒有辦法反向引用了

但是多加一層括號就能達到效果

reg = /^((?:b|c))\1/;可以測試一波

個人理解:雖然前面有?:的子表達式沒有保存匹配到的值;但是他的父級子表達式保存了

技術分享圖片

技術分享圖片

JS正則表達式之--?: