当前位置:编程学习 > C#/ASP.NET >>

正则表达式求助。。

<A onclick=h(this) onmousedown="return ns_c({'fm':'behs','tab':'homepage','pos':0})" id=seth style="DISPLAY: inline" href="/">设为主页</A>

怎么用正则匹配出
onclick=h(this)
onmousedown="return ns_c({'fm':'behs','tab':'homepage','pos':0})"
id=seth
style="DISPLAY: inline"
href="/"



(\S*?)="?(.*?)"?只能匹配每个属性的一半,也就是
onclick=
onmousedown=
id=
style=
href=

(\S*?)="(.*?)"的话能匹配带引号的三条属性:
onmousedown="return ns_c({'fm':'behs','tab':'homepage','pos':0})"
style="DISPLAY: inline"
href="/"

求解如何才能匹配到全部的。。。 --------------------编程问答-------------------- (?in)(?<=<a[^>]*?)(?<name>\w+)=(?<value>"[^"]*"|\S+)

取分组name就是=前面的属性名,取分组value就是值。
直接用匹配结果就是你要的整体内容。

foreach(Match m in Regex.Matches(yourHtml,@"(?in)(?<=<a[^>]*?)(?<name>\w+)=(?<value>""[^""]*""|\S+)"))
{
    m.Value;//全部
    m.Groups["name"].Value;//属性名
    m.Groups["value"].Value;//值
}
--------------------编程问答-------------------- csdn最强大的组织,兔子党 --------------------编程问答-------------------- 跟兔子学习 --------------------编程问答--------------------
引用 1 楼 wuyazhe 的回复:
(?in)(?<=<a[^>]*?)(?<name>\w+)=(?<value>"[^"]*"|\S+)

取分组name就是=前面的属性名,取分组value就是值。
直接用匹配结果就是你要的整体内容。

foreach(Match m in Regex.Matches(yourHtml,@"(?in)(?<=<a[^>]*?)(?<name>\w+)=(?<value>""[^""]*""|\S+)"))
{
    m.Value;//全部
    m.Groups["name"].Value;//属性名
    m.Groups["value"].Value;//值
}


谢谢大神,结贴~
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,