1.字符串文本如下:
|2#64#10086#(01/02)特别提醒:尊敬的客户,您于2012年01月17日09时39分以用户服务密码验证方式通过浙江移动综合查询系统查询了您2011年12月的通#12-01-17 09:39:34
|4#60#10086#(01/02)您的手机号码现已开通!帐户余额50.0元,话费有效期至2012年3月13日。发短信7231至10086办理话费信使服务,每月1元可获每#11-12-14 13:33:21
|18#24#10086#尊敬的神州行客户:您好,03月11日您成功充值300.00元,当前您的充值帐户余额为290.82元。短信发1至10086查询即时话费信息。#12-03-11 14:30:26
|20#24#10086#尊敬的客户,您参加的集团心机0元欢乐购活动,本月已返充108.00元至您的帐户中,该活动还有20个月到期,请您关注#11-12-30 08:31:43
|21#04#8613857445872#元旦3号加班,陈波平#11-12-30 14:19:24
|22#04#8615168182252#祝黄总身体健康,新年快乐!#11-12-31 13:02:56
|23#04#8615240407331#这阵忙什么呢?还好吗?我换了个新号刚在点歌频道给你点了音乐,你拨 1259073582按 3键听吧,里面还有我的一段话 听听就知道我是谁了#12-01-18 15:50:51
|24#04#8615967847225#新年到|,祝裾到;祝您天天开心笑,日日数钞票.罗由光祝领导新年块乐!#11-12-31 18:28:57
|25#04#8615967847225#新年到,祝福到;祝您天天开心笑,日曰数钞票;罗由光祝领导新年快乐!#11-12-31 19:00:18
|26#04#8613967800708#新年快乐,身体安康!#11-12-31 23:59:51
|27#04#8615168182252#祝梁身体健康,新年  #12-01-01 07:37:082.因为短信内容里有分隔符“|”,所以想使用正则表达式把每条短信存储到数组,求该正则怎么写

解决方案 »

  1.   

    如果你仅仅是因为 | 分隔,那split不就行吗
                string s = "a|b|c|d";
                string[] ss = s.Split('|');
      

  2.   


     string str = @"|2#64#10086#(01/02)特别提醒:尊敬的客户,您于2012年01月17日09时39分以用户服务密码验证方式通过浙江移动综合查询系统查询了您2011年12月的通#12-01-17 09:39:34
    |4#60#10086#(01/02)您的手机号码现已开通!帐户余额50.0元,话费有效期至2012年3月13日。发短信7231至10086办理话费信使服务,每月1元可获每#11-12-14 13:33:21
    |18#24#10086#尊敬的神州行客户:您好,03月11日您成功充值300.00元,当前您的充值帐户余额为290.82元。短信发1至10086查询即时话费信息。#12-03-11 14:30:26
    |20#24#10086#尊敬的客户,您参加的集团心机0元欢乐购活动,本月已返充108.00元至您的帐户中,该活动还有20个月到期,请您关注#11-12-30 08:31:43
    |21#04#8613857445872#元旦3号加班,陈波平#11-12-30 14:19:24
    |22#04#8615168182252#祝黄总身体健康,新年快乐!#11-12-31 13:02:56
    |23#04#8615240407331#这阵忙什么呢?还好吗?我换了个新号刚在点歌频道给你点了音乐,你拨 1259073582按 3键听吧,里面还有我的一段话 听听就知道我是谁了#12-01-18 15:50:51
    |24#04#8615967847225#新年到|,祝裾到;祝您天天开心笑,日日数钞票.罗由光祝领导新年块乐!#11-12-31 18:28:57
    |25#04#8615967847225#新年到,祝福到;祝您天天开心笑,日曰数钞票;罗由光祝领导新年快乐!#11-12-31 19:00:18
    |26#04#8613967800708#新年快乐,身体安康!#11-12-31 23:59:51
    |27#04#8615168182252#祝梁身体健康,新年 #12-01-01 07:37:08";
                    
                    Regex re = new Regex("\\d+.*?\\d{2}\\:\\d{2}", RegexOptions.None);
                    MatchCollection mc = re.Matches(str);
                    foreach (Match ma in mc)
                    {
                        Console.WriteLine(ma.Value);
                    }
                    Console.ReadLine();