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

 我来答
conis
推荐于2018-04-12 · TA获得超过209个赞
知道答主
回答量:131
采纳率:0%
帮助的人:0
展开全部
取href的链接的

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

差不多了吧,不一定全部正确,你应该去了解一下正则的元正符再来看
匿名用户
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中

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

参考资料: http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm#lookaround

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式