正则表达式href\s*=\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))什么意思,详细点
2个回答
展开全部
取href的链接的
href是正常的href字符
\s表示一个空格,*表示1个或者多个匹配,当前的意思是一个或者多个空格
=是正常的字符
?<1>在这里应该是命名捕获组,我不知道你这个正则是哪个流派的,但应该不是js和c#的,呵
\\S+,\\前面一个表示转义,这个的意思是\后面带一个S,而S可以是多个,同样,\"也是转义,因为"和\都是正则的元字符
[^\"],在方括号中的^,如果我没记错的话,应该是不包含的意思吧,就是不不含"
差不多了吧,不一定全部正确,你应该去了解一下正则的元正符再来看
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中
这样可以在匹配后直接使用该属性值
*是指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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询