2010-12-22 96 views
1

之间,我搜索到的所有内容2标签<a</a>regEx - regExp |标签<a></a> - 与其他标签

我的页面之间的匹配始终是相同的,

<a class="applink" href="myLINK" target="..." onClick="..."><img src="..." border="0" alt="..." title="..." align=bottom hspace=3 width="32" height="32"><br>xxxxx</br></a> 

一想比赛的一部分这里的代码的HTML代码。

所以<a class="applink" [...] </a>(!!!!与标签<img例如 - >无[^>] *)

+0

你有什么要提取? “xxxxx”? – 2010-12-22 13:06:23

+0

[RegEx匹配除XHTML自包含标记外的开放标记]可能的重复(http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – annakata 2010-12-22 13:09:42

+0

只是一个小标记说明,`
xxxx
`不正确。一个换行符必须是这样的:`
` – Dan 2010-12-22 13:13:36

回答

1

HTML解析是有点棘手用正则表达式,但这应该对很多情况下工作:

<a\s.*?href\s*=\s*"appLink"[^>]*>(.|\s)*?</a> 

这将匹配具有href =“appLink”的元素。

您可能想要考虑使用.NET XML解析代码。

-1
<a.*</a> 

OR

<a class="applink".*</a> 
0

这应该为您解决:<a .*?</a>

这不会影响其它标签,比如<地址>,<简称> ...

2

更好这里的方法是使用HTML解析器。例如,Html Agility Pack

HtmlWeb web = new HtmlWeb(); 
HtmlDocument doc = web.Load("http://jsbin.com/enico4/"); // this works! 
HtmlNodeCollection links = doc.DocumentNode.SelectNodes("//a[@class='appLink']"); 

您还可以得到各个环节的HTML,如果你需要它,但links已经是你所需要的集合。

IEnumerable<string> appLinks = links.Select(link => link.InnerHtml); 

(这里的代码是C#,但它应该很容易转换为VB.Net)