html如下:
<DIV class=listmain id=listmain_5 status=\"11\">\r\n<P class=banner><SPAN class=s1>[元宝]</SPAN><SPAN>订单编号:DB212345678998765432</SPAN><SPAN>创建时间:2011-05-27 13:44</SPAN> </P>\r\n<UL class=u1>\r\n<LI class=ico_db><A href=\"http://aaa.1234.com/auction/buy/myorder2.aspx?orderid=DB212345678998765432&tradingservicetype=escort\" target=_blank>324元宝 = 300元 ★诚信100%★绿色产品★放心购买★</A> \r\n<LI>游戏/区/服:诛仙2/新电信四区/傲雪欺霜/ </LI></UL>\r\n<UL class=u2>\r\n<LI class=orange>¥300.00 </LI></UL>\r\n<UL class=u3>\r\n<LI>1 </LI></UL>\r\n<UL class=u5></UL>\r\n<UL class=u5>\r\n<LI class=orange>交易成功 \r\n<LI>现在需要的结果是:
11
[元宝]
DB212345678998765432
2011-05-27 13:44
324元宝 = 300元
诛仙2/新电信四区/傲雪欺霜/
300.00
1
交易成功
烦请技术牛人给个正则表达式,谢谢了
<DIV class=listmain id=listmain_5 status=\"11\">\r\n<P class=banner><SPAN class=s1>[元宝]</SPAN><SPAN>订单编号:DB212345678998765432</SPAN><SPAN>创建时间:2011-05-27 13:44</SPAN> </P>\r\n<UL class=u1>\r\n<LI class=ico_db><A href=\"http://aaa.1234.com/auction/buy/myorder2.aspx?orderid=DB212345678998765432&tradingservicetype=escort\" target=_blank>324元宝 = 300元 ★诚信100%★绿色产品★放心购买★</A> \r\n<LI>游戏/区/服:诛仙2/新电信四区/傲雪欺霜/ </LI></UL>\r\n<UL class=u2>\r\n<LI class=orange>¥300.00 </LI></UL>\r\n<UL class=u3>\r\n<LI>1 </LI></UL>\r\n<UL class=u5></UL>\r\n<UL class=u5>\r\n<LI class=orange>交易成功 \r\n<LI>现在需要的结果是:
11
[元宝]
DB212345678998765432
2011-05-27 13:44
324元宝 = 300元
诛仙2/新电信四区/傲雪欺霜/
300.00
1
交易成功
烦请技术牛人给个正则表达式,谢谢了
上班没空, 大致就是上面这个思路咯。你又不需要严格匹配,仅需要匹配关键数据就可以了,所以可以放宽。
帖子上已经有了,从那一段html中匹配下面结果你需要的内容
把这个字符串都匹配了,你需要的内容用挎号进行了分组,所有分组中的内容就是你想要的。你可以按照你想要的内容拆分成单个的正则表达式。注:你提供的测试字符串最后面是不是应该为 </li>,如果是</li>,需要把上面的正则表达式的<li>改成</li>
用这个
System.Text.RegularExpressions.Regex rx = new System.Text.RegularExpressions.Regex(@"status=\\\""(?<Status>\d+).*class=s1>(?<ItemName>.*).*</.*订单编号:(?<OrderNum>[a-zA-Z0-9]+).*创建时间:(?<Time>[0-9 \-:]+).*_blank>(?<What>.*)</A>.*游戏/区/服:(?<Area>.*) <.*¥(?<Cost>\d+\.\d+).*\<LI\>(?<Num>\d+).*orange>(?<Result>.*) ");工具测试了似乎可行的样子
System.Text.RegularExpressions.Match m = rx.Match(line);
if (!m.Success)
return;string num = m.Groups["Num"].Value;
//......
如果匹配不到时间,那么是不是你没有匹配空格, 我输入的地方是有空格的,或者他是\t?
如果status匹配不成功,那可能就是转意的那么多个\和"匹配的问题,不敢说是工具问题还是什么问题
不过工具里面我可是都匹配成功才粘上来了 -_-
你可以试试 RegexBuilder, 我用的他测试的.