现在有一个string对象,分6或7部分,每部分之间用~分割,每一部分格式如下:
1 0表示新增;1表示修改
2 格式为YYYYMMDDHHMISS
3 EC的唯一标识,变长,最长20位(最短1位)
4 变长,最长20位(最短1位)
5 变长(最短1位)
6 EC所属区域信息,变长(最短1位)
7 可选(可有,可无)例如:0~20080505132203~2334211~xxxxxx~江津花椒公司~cq.cq.jj.01~xxxxxx
      0~20080505132203~2334211~xxxxxx~江津花椒公司~cq.cq.jj.01
我应该怎么写我的表达式呢!!

解决方案 »

  1.   

    整个的匹配么?以下经过测试有效。            string yourStr = @"0~20080505132203~2334211~xxxxxx~江津花椒公司~cq.cq.jj.01~xxxxxx
      0~20080505132203~2334211~xxxxxx~江津花椒公司~cq.cq.jj.01";
                MatchCollection mc = Regex.Matches(yourStr, @"[01]~\d{14}~\d{1,20}~[^~]{1,20}~[^~]{1,}~[^~]{1,}(~.+)?");
                foreach (Match m in mc)
                {
                    Console.WriteLine(m.Value);
                }
    另外,楼主,貌似你最近的几贴有答案了都没结贴。csdn发帖要结贴的。知道这个规则么?结贴能提高别人回复你帖子的积极性。
      

  2.   

    [01]\~\d{14}\~\d{1,20}\~\w+\~.+\~\w+(\~\w+)?