我有一个代码`
string tag = "div";
string pattern = string.Format(@"\<{0}.*?\>(?<tegData>.+?)\<\/{0}\>", tag.Trim());
Regex regex = new Regex(pattern, RegexOptions.ExplicitCapture);
MatchCollection matches = regex.Matches(data);
`
我需要在之间获取内容<div class="in"> .... </div>
tags
<div class="in">
<a href="/a/show/7184569" class="mm">ВАЗ 2121</a> <span class="for">за</span> <span class="price">2 700 $</span></span><br/><span class="year">1990 г.</span><br/><div style="margin: 3px 0 3px 0">1.6 л, бензин, КПП механика, с пробегом, белый, литые диски, тонировка, спойлер, ветровики, противотуманки, Движок после капитального ремонта!</div><div>
<span style="display:block; padding: 4px 0 0 0;"><span class="region">Костанай</span><span class="adv-phones">, +7 (777) 4464451</span></span>
<small class="gray air">24 просмотра</small>
<small class="gray air">13 июня</small>
</div>
<div class="selectItem" title="Выбрать" id="fv_sic_7184569">
<a href="#" class="fav-button" id="fav_7184569"> </a> </div>
</div>
我该怎么做?
我的代码不起作用。
这是一个可以提取简单 div 标签的正则表达式:
// <div[^>]*>(.+?)</div>
string tag = "div";
string pattern = string.Format(@"<{0}[^>]*>(?<tegData>.+?)</{0}>", tag.Trim());
然而,使用 RegEx 进行 HTML 解析几乎总是不合适的,而且肯定无法正常工作。这只是因为 HTML 等标记语言不是常规语言。
话虽这么说,您最好使用 XML 解析器来解析文档或片段,然后提取您需要的内容。事实上,使用只进解析器甚至可能比尝试使用 RegEx 更快。
你应该看看.NET 中的 XmlReader 类 http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)