正则表达式求助

gooyan 2015-02-03 04:52:25
<tr><td width=14% height=23 bgcolor=#d2ec9d align=center valign=center><font size=2>00:15</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>166.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.1</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>166.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>181.9</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.3</font></td>
<tr><td width=14% height=23 bgcolor=#d2ec9d align=center valign=center><font size=2>00:15</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>166.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.0</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.0</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>166.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>181.9</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.0</font></td>



正则表达式:(?is)<tr>(?:\s*<td[^>]*><font[^>]*>(.*?)</font></td>)*\s*
解析出来的结果如图,怎么把<font color=blue>也解析掉呢,就像capture #1一样呢?
解析完为:
Match#1
group(1)
capture #1:00:15
capture #2:166.2
capture #3:0.1
capture #4:0.2
capture #5:166.2
capture #6:181.9
capture #7:0.3

...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
吹风的兔子 2015-02-03
  • 打赏
  • 举报
回复
每当看到 那些 匹配 HTML 的项目,我只想说: 纠结正则,项目迟早会做死。 上面的 匹配引擎介绍: http://www.shuxiaolong.com/Project/0/5I7UFN38GEQ.aspx 上面的 匹配引擎下载: http://www.shuxiaolong.com/DoAjax/DownloadHandler.ashx?Number=5I7UG4TJGY4 如果需要: 我 十分钟 内 把 博客园,CSDN 的 文章、 文章评论 全部 匹配出来。
吹风的兔子 2015-02-03
  • 打赏
  • 举报
回复













class Program
{
static void Main(string[] args)
{
string testHtml =
@"<tr><td width=14% height=23 bgcolor=#d2ec9d align=center valign=center><font size=2>00:15</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>166.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.1</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>166.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>181.9</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.3</font></td>
<tr><td width=14% height=23 bgcolor=#d2ec9d align=center valign=center><font size=2>00:15</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>166.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.0</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.0</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>166.2</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>181.9</font></td>
<td width=14% height=23 bgcolor=#ffffff align=center valign=top><font size=2>
<font color=blue>0.0</font></td>";


string matchFile = AppDomain.CurrentDomain.BaseDirectory + "/博客园网友HTML匹配.data";
MatchSchema matchSchema = (MatchSchema) ReadStreamFromDisk(matchFile);

MatchObject matchObject = matchSchema.CalculateFieldValues(testHtml);
List<string> listTitle = matchObject.GetValues("去掉空格");

foreach (string result in listTitle)
Console.WriteLine(result);
}

/// <summary>
/// 读取数据流;
/// 如果路径不存在 将 返回 null;
/// </summary>
/// <param name="file">序列化文件的路径</param>
/// <returns></returns>
public static Object ReadStreamFromDisk(string file)
{
if (!File.Exists(file)) { return null; }

Object objModel = null;
FileStream myFs = null;
BinaryFormatter myBf = null;
try
{
myFs = new FileStream(file, FileMode.Open);
myBf = new BinaryFormatter();

objModel = myBf.Deserialize(myFs);

myFs.Close();
}
catch { }

return objModel;
}


}

q107770540 2015-02-03
  • 打赏
  • 举报
回复
(?is)<td[^>]*?>.*?(\d+(?:[\.:]\d+)?)</font></td>

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧