JS正則表達式之--?:
阿新 • • 發佈:2018-11-17
正則表達 冒號 由於 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正則表達式之--?: