正則表達式問題:如何理解/href\s*=\s*(?:"(?<1>[^"]*)"|(?<1>\S+))/(轉載)

ms-help://MS.VSCC/MS.MSDNVS.2052/jscript7/html/jsjsgrpregexpsyntax.htm
該文雖有解釋, 但沒有樣例,對我這樣的初學者來講很難理解

在msdn上看到:href\s*=\s*(?:"(?<1>[^"]*)"|(?<1>\S+)),該正則表達式匹配字符串中的形如href="..."的連接。msdn沒有解釋該表達式的語法, 如下是我初步的問題

1. (?:"(....\S+))這一部分是什麼意思

在msdn上說明(?:pattern)爲:
   "匹配 pattern 但不捕獲該匹配的子表達式,即它是一個非捕獲匹配,不存儲供之後使用的匹配。這對於用「或」字符 (|) 組合模式部件的 狀況頗有用。例如,「industr(?:y|ies)」這一表達式比「industry|industries」更經濟。

以上這些話很難理解, 那麼在這裏pattern是"(?<1>[^"]*)"|(?<1>\S+), 該怎麼解釋呢

一樣msdn對(pattern)(?=pattern)(?!pattern)之類的解釋,我也不太理解

2.?:表示匹配但不獲取,若是不用,會多獲取幾個匹配,佔用資源。
?<1>引用名稱,即表示該獲取能夠用$1引用,

html

相關文章
相關標籤/搜索