求正则

bestdowt1314 2011-04-28 01:38:30
是一个html文档,想要提取出包括关键字的一行出来,


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" /><title>
</title>

</head>
<body>
<span><table class="cs2D2816FE" border="0" cellspacing="0" cellpadding="0" width="672" style="border-collapse:collapse;">
<tr>
<td class="cs749A6D5D" valign="top" width="264"><p class="cs7CED571B"><span class="cs887A04EB"> </span></p><p class="cs7CED571B"><span class="cs887A04EB"> </span></p><p class="cs7CED571B"><span class="cs887A04EB"> </span></p><p class="cs7CED571B"><span class="cs887A04EB"> </span></p><p class="cs7CED571B"><a name="OLE_LINK14"></a><a name="OLE_LINK13"></a><span class="cs8B191A5E">{</span><a name="OLE_LINK9"></a><a name="OLE_LINK8"></a><span class="cs8B191A5E">DebtorName}</span></p><p class="cs7CED571B"><span class="cs8B191A5E">{DebtorAddress1}</span></p><p class="cs7CED571B"><span class="cs8B191A5E">{DebtorAddress2}</span></p><p class="cs7CED571B"><span class="cs8B191A5E">{DebtorZipcode}</span></p><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><a name="OLE_LINK16"></a><a name="OLE_LINK15"></a><span class="cs8B191A5E">Debtor No. : {DebtorNo}</span></p></td><td class="csC47889AB" valign="top" width="12"><p class="cs7CED571B"><span class="csDD8536E9"> </span></p></td><td class="csC47889AB" valign="top" width="12"><p class="cs7CED571B"><span class="csDD8536E9"> </span></p></td><td class="csD421D9EE" valign="top" width="12"><p class="cs7CED571B"><span class="csDD8536E9"> </span></p></td><td class="cs284A5114" valign="top" width="133"><p class="cs7CED571B"><span class="csDD8536E9"> </span></p></td><td class="csEEA63E60" valign="top" width="36"><p class="cs7CED571B"><span class="csDD8536E9"> </span></p></td><td class="cs87AC5DB3" valign="top" width="204"><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><span class="cs887A04EB"> </span></p><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><span class="cs5EFED22F"> </span></p><p class="cs7CED571B"><span class="cs887A04EB">Celox ApS</span></p><p class="cs7CED571B"><span class="csA863CB31">Brøndbyvester stræde 9</span></p><p class="cs7CED571B"><span class="csA863CB31">2605  Brøndby</span></p><p class="cs7CED571B"><span class="csA863CB31"> </span></p><p class="cs7CED571B"><span class="cs3A2E1CC0">Cvr-Nr : 29406928</span></p><p class="cs7CED571B"><span class="cs3A2E1CC0">Internet : www.Celox.dk</span></p><p class="cs7CED571B"><span class="cs3A2E1CC0">Email : <a href="mailto:Salg@Celox.dk"><span class="cs338EC901">Salg@Celox.dk</span></a></span></p><p class="cs7CED571B"><span class="cs3A2E1CC0">Bank : Nykredit Bank 8117-1309166</span></p><p class="cs7CED571B"><span class="csA863CB31"> </span></p></td></tr>
</table>
<p class="cs7CED571B"><span class="cs8B191A5E">Invoice No. : {InvoiceNo}                                                            Date :  {InvoiceDate}</span></p><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p><table class="cs2D2816FE" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse;">
<tr>
<td class="cs2F37A0FD" valign="top" width="161"><p class="cs7CED571B"><span class="cs8B191A5E">Numbers</span></p></td><td class="csE05DBAAA" valign="top" width="259"><p class="cs7CED571B"><span class="cs8B191A5E">Text</span></p></td><td class="csC60EE961" valign="top" width="77"><p class="cs7CED571B"><span class="cs8B191A5E">Price</span></p></td><td class="cs8F0010BA" valign="top" width="88"><p class="cs7CED571B"><span class="cs8B191A5E">Discount</span></p></td><td class="csF00EB851" valign="top" width="179"><p class="cs7CED571B"><span class="cs8B191A5E">Kr</span></p></td></tr>
<tr>
<td class="cs52C65D4B" valign="top" width="161"><p class="cs7CED571B"><span class="cs8B191A5E">[Repeat.DebtorInvoiceLine]{Numbers}</span></p></td><td class="csA8C211C5" valign="top" width="259"><p class="cs7CED571B"><span class="cs5EFED22F"> {StockItemID}</span></p></td><td class="csABEDE5CD" valign="top" width="77"><p class="cs7CED571B"><span class="cs8B191A5E">{Price}</span></p></td><td class="cs96BC1DBF" valign="top" width="88"><p class="cs7CED571B"><span class="cs8B191A5E">{Discount} </span></p></td><td class="cs28804572" valign="top" width="179"><p class="cs7CED571B"><span class="cs8B191A5E">{Amount} [EndRepeat]</span></p></td></tr>
<tr>
<td class="cs52C65D4B" valign="top" width="161"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="csA8C211C5" valign="top" width="259"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="csABEDE5CD" valign="top" width="77"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="cs96BC1DBF" valign="top" width="88"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="cs28804572" valign="top" width="179"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td></tr>
<tr>
<td class="cs52C65D4B" valign="top" width="161"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="csA8C211C5" valign="top" width="259"><p class="cs7CED571B"><span class="cs8B191A5E">Total</span></p></td><td class="csABEDE5CD" valign="top" width="77"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="cs96BC1DBF" valign="top" width="88"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="cs28804572" valign="top" width="179"><p class="cs7CED571B"><span class="cs8B191A5E">{TotalAmount}</span></p></td></tr>
<tr>
<td class="cs52C65D4B" valign="top" width="161"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="csA8C211C5" valign="top" width="259"><p class="cs7CED571B"><span class="cs8B191A5E">TotalDiscount</span></p></td><td class="csABEDE5CD" valign="top" width="77"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="cs96BC1DBF" valign="top" width="88"><p class="cs7CED571B"><span class="cs8B191A5E"> </span></p></td><td class="cs28804572" valign="top" width="179"><p class="cs7CED571B"><span class="cs8B191A5E">{TotalDiscount}</span></p></td></tr>
</table>
<p class="cs7CED571B"><span class="cs5EFED22F"> </span></p></span></body>
</html>


想要提取出行
<tr>
<td class="cs52C65D4B" valign="top" width="161"><p class="cs7CED571B"><span class="cs8B191A5E">[Repeat.DebtorInvoiceLine]{Numbers}</span></p></td><td class="csA8C211C5" valign="top" width="259"><p class="cs7CED571B"><span class="cs5EFED22F"> {StockItemID}</span></p></td><td class="csABEDE5CD" valign="top" width="77"><p class="cs7CED571B"><span class="cs8B191A5E">{Price}</span></p></td><td class="cs96BC1DBF" valign="top" width="88"><p class="cs7CED571B"><span class="cs8B191A5E">{Discount} </span></p></td><td class="cs28804572" valign="top" width="179"><p class="cs7CED571B"><span class="cs8B191A5E">{Amount} [EndRepeat]</span></p></td></tr>

这是我写的正则,但是感觉出现了贪婪匹配
<tr>([\s\S]*)\[Repeat\.(\S*)]([\s\S]*)\[EndRepeat\]([\s\S]*)</tr>
请高手指教
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bestdowt1314 2011-04-28
  • 打赏
  • 举报
回复
string _patt = "<tr>([\\s\\S]*?)\\[Repeat\\.(\\S*)]([\\s\\S]*?)\\[EndRepeat\\]([\\s\\S]*?)<\\/tr>";
huangwenquan123 2011-04-28
  • 打赏
  • 举报
回复
            string str = File.ReadAllText(Server.MapPath("TextFile.txt"));
Regex reg = new Regex(@"(?is)<tr\b((?!</?tr\b).)*\[Repeat\..*?\[EndRepeat\]((?!</?tr\b).)*</tr>");
foreach (Match m in reg.Matches(str))
{
Response.Write(m.Value + "<br/>");
}
q107770540 2011-04-28
  • 打赏
  • 举报
回复
(?i)<tr>((?!<tr>)[\s\S])*?\[Repeat.*?\[EndRepeat\]((?!</tr>)[\s\S])*?</tr>
q107770540 2011-04-28
  • 打赏
  • 举报
回复
(?i)<tr>((?!<tr>)[\s\S])*\[Repeat.*?\[EndRepeat\]((?!</tr>)[\s\S])*?</tr>
Ni_Yang 2011-04-28
  • 打赏
  • 举报
回复
验证数字的正则表达式集
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^\d+$
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?

  • 打赏
  • 举报
回复
坐等高手。。
正则刚认识,菜鸟一只

62,025

社区成员

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

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

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

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