正则表达式问题:如何理解/href\s*=\s*(?:"(?<1>[^"]*)"|(?<1>\S+))/
初学正则表达式,请大家指教。
我查看了msdn的正则表达式帮助:
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>是什么意思, 在msdn上我没看到<n>这种语法
3. 网上有关于正则表达式的中文教程吗
我在网上查这方面的资料, 发现大多是实用型的, 即告诉你匹配什么什么用怎样怎样的正则表达式, 但不解释为什么这这样. 大家有关于这方面的好的资料吗