您的位置:首页 > 其它

正则表达式问题:如何理解/href\s*=\s*(?:"(?<1>[^"]*)"|(?<1>\S+))/(转载)

2014-07-25 14:52 155 查看
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引用,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: