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&amp;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
交易成功
烦请技术牛人给个正则表达式,谢谢了

解决方案 »

  1.   

    MARK.明天欣赏高手正则,下班.
      

  2.   

    类似这样嘛, ".*status=\\\"(<first>\d+).*class=s1\>(<second>.+)/< 
    上班没空, 大致就是上面这个思路咯。你又不需要严格匹配,仅需要匹配关键数据就可以了,所以可以放宽。
      

  3.   


    帖子上已经有了,从那一段html中匹配下面结果你需要的内容
      

  4.   

    <div[\s\S]*?status=\\"(\d+)\\"[\s\S]*?<span[^>]*>(\[元宝\])[\s\S]*?订单编号:(\w)+[\s\S]*?创建时间:([\d-\s:]+)[\s\S]*?<ul[\s\S]*?class=u1[\s\S]*?<a[^>]+>(.+)</a>[\s\S]*?<li>([\s\S]*?)</li></ul>[\s\S]*?<li[\s\S]*?class=orange[\s\S]*?>([\s\S]*?)</li></ul>[\s\S]*?<ul[\s\S]*?class=u3[\s\S]*?<li>([\s\S]*?)</li>[\s\S]*?<ul[\s\S]*?class=u5[\s\S]*?<li[\s\S]*?>(.+)<li>
    把这个字符串都匹配了,你需要的内容用挎号进行了分组,所有分组中的内容就是你想要的。你可以按照你想要的内容拆分成单个的正则表达式。注:你提供的测试字符串最后面是不是应该为 </li>,如果是</li>,需要把上面的正则表达式的<li>改成</li>
      

  5.   

    <div[\s\S]*?status=\\"(\d+)\\"[\s\S]*?<span[^>]*>(\[.+\])[\s\S]*?订单编号:(\w)+[\s\S]*?创建时间:([\d-\s:]+)[\s\S]*?<ul[\s\S]*?class=u1[\s\S]*?<a[^>]+>(.+)</a>[\s\S]*?<li>([\s\S]*?)</li></ul>[\s\S]*?<li[\s\S]*?class=orange[\s\S]*?>([\s\S]*?)</li></ul>[\s\S]*?<ul[\s\S]*?class=u3[\s\S]*?<li>([\s\S]*?)</li>[\s\S]*?<ul[\s\S]*?class=u5[\s\S]*?<li[\s\S]*?>(.+)<li>
    用这个
      

  6.   


    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>.*) ");工具测试了似乎可行的样子
      

  7.   

    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>.*) ");还是不用代码格式好了 -_-
      

  8.   


    System.Text.RegularExpressions.Match m = rx.Match(line);
    if (!m.Success)
         return;string num = m.Groups["Num"].Value;
    //......
      

  9.   

    13楼正则我拆开试了下,status和创建时间这两个匹配不到
      

  10.   

    我是用的工具自动粘贴出来的代码
    如果匹配不到时间,那么是不是你没有匹配空格, 我输入的地方是有空格的,或者他是\t?
    如果status匹配不成功,那可能就是转意的那么多个\和"匹配的问题,不敢说是工具问题还是什么问题
    不过工具里面我可是都匹配成功才粘上来了 -_-
    你可以试试 RegexBuilder, 我用的他测试的.