正则表达式href\s*=\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))什么意思,详细点

如题所述

取href的链接的

href是正常的href字符
\s表示一个空格,*表示1个或者多个匹配,当前的意思是一个或者多个空格
=是正常的字符
?<1>在这里应该是命名捕获组,我不知道你这个正则是哪个流派的,但应该不是js和c#的,呵
\\S+,\\前面一个表示转义,这个的意思是\后面带一个S,而S可以是多个,同样,\"也是转义,因为"和\都是正则的元字符
[^\"],在方括号中的^,如果我没记错的话,应该是不包含的意思吧,就是不不含"

差不多了吧,不一定全部正确,你应该去了解一下正则的元正符再来看
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-13
补充:
*是指0或者多个 href= 和 href =都匹配

(?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号

\"(?<1>[^\"]*)\" 匹配的 "任意字符串" 只要引号内不含^"就可以

还有一个作用就是把匹配的引号内的字串放在group 1里

(?<1>\\S+)这里可能是(?<1>\S+)
匹配任意非空字串,并放入 group 1里

因此整个表达式应该是匹配一个
href属性,并把属性值放入 group 1中

这样可以在匹配后直接使用该属性值

参考资料:

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网