現有一段字串,其中有多個<dl class = "dl_oil_coast">...</dl>的文本,需用正則表達式取出所有相關的文本,之前用@"<dl[^>]+?class=\W*dl_oil_coast\b[^>]*>[\s\S]+?</dl>" 只能取出第一個匹配的文本,求各位對正則表達式有研究的前輩們給些提示,謝謝~!
字串如:<html><body><a href="javascript:loadMenu('/v3/inc/left/left_menu2.jsp?sub=2&sub2=1','/v3/jsp/pet/prc/foreign/KDFQ0100_l.jsp');">more</a>
</span>
</p>
<dl class="dl_oil_coast">
<dt class="gasoline">Dubai</dt>
<dd class="coast">108.86
</dd>
<dd><span class="gap_up">1.55
</span></dd>
<dt class="lamp">Brent</dt>
<dd class="coast">109.72
</dd>
<dd><span class="gap_down">0.77
</span></dd>
<dt class="diesel">WTI</dt>
<dd class="coast">100.42
</dd>
<dd><span class="gap_down">0.84
</span></dd>
</dl>
<br>
<p class="graph_caption"></p>
<p class="graph"><p class="graph_caption"></p>
<p class="graph"></p>
<p class="oil_coast_table_caption">2011. 12. 07 ($/bbl)
<span align="right">
<a href="javascript:loadMenu('/v3/inc/left/left_menu2.jsp?sub=2&sub2=2','/v3/jsp/pet/prc/foreign/KDFQ0300_l.jsp');">more</a>
</span>
</p>
<dl class="dl_oil_coast">
<dt class="diesel">WTI (NYMEX)</dt>
<dd class="coast">100.49
</dd>
<dd><span class="gap_down">0.79
</span></dd>
<dt class="lamp">Brent (ICE)</dt>
<dd class="coast">109.53
</dd>
<dd><span class="gap_down">1.28
</span></dd>
</dl>
<br/><body></html>
字串如:<html><body><a href="javascript:loadMenu('/v3/inc/left/left_menu2.jsp?sub=2&sub2=1','/v3/jsp/pet/prc/foreign/KDFQ0100_l.jsp');">more</a>
</span>
</p>
<dl class="dl_oil_coast">
<dt class="gasoline">Dubai</dt>
<dd class="coast">108.86
</dd>
<dd><span class="gap_up">1.55
</span></dd>
<dt class="lamp">Brent</dt>
<dd class="coast">109.72
</dd>
<dd><span class="gap_down">0.77
</span></dd>
<dt class="diesel">WTI</dt>
<dd class="coast">100.42
</dd>
<dd><span class="gap_down">0.84
</span></dd>
</dl>
<br>
<p class="graph_caption"></p>
<p class="graph"><p class="graph_caption"></p>
<p class="graph"></p>
<p class="oil_coast_table_caption">2011. 12. 07 ($/bbl)
<span align="right">
<a href="javascript:loadMenu('/v3/inc/left/left_menu2.jsp?sub=2&sub2=2','/v3/jsp/pet/prc/foreign/KDFQ0300_l.jsp');">more</a>
</span>
</p>
<dl class="dl_oil_coast">
<dt class="diesel">WTI (NYMEX)</dt>
<dd class="coast">100.49
</dd>
<dd><span class="gap_down">0.79
</span></dd>
<dt class="lamp">Brent (ICE)</dt>
<dd class="coast">109.53
</dd>
<dd><span class="gap_down">1.28
</span></dd>
</dl>
<br/><body></html>
解决方案 »
- 为什么我查询yahoo、baidu的whois信息,查询不到?
- 超线程及按钮子程序调用问题
- 我的所有数据都在DataTable内,怎么用aspnetPager 分页?
- WPF中修改部分按钮属性
- 用maskedtextbox能否做成设置IP地址那样子的,就是当写的数字>255的时候就弹出对话框,报错
- 求教:如何将客户端SQL Server数据压缩后上传到服务端!
- 用C#编的个人理财软件,欢迎大家下载研究,送终身永久帐户!
- 我有一个主机空间 想组建网站不知道该如何操作 送给您六十分)
- 请问如何生成两个不一样的随机数?
- 新手提问,下了一个后台管理系统的模板,如何做B/S的监测系统?
- 帮忙修改下这段代码,加入图片 wpf
- 关于TreeView的SelectedNodeIndex属性的问题
public static IList<string> GetPicPath(string M_Content)
{
IList<string> im = new List<string>();//定义一个泛型字符类
Regex reg = new Regex(@"(?is)<li>地\s*址:(?<name>.+?)</li>");
MatchCollection mc = reg.Matches(M_Content); //设定要查找的字符串
foreach(Match m in mc)
{
im.Add(m.Groups["name"].Value);
}
return im;
}
string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
string pattern = @"(?im)<dl[^>]*?dl_oil_coast[^>]*?>[\s\S]*?</dl>";
foreach (Match m in Regex.Matches(tempStr, pattern))
{
//循环输出
string text = m.Value;
/*
*/
}