string str = "234527342998211
已知有上述字符串,想用正则表达式来截取集合为:
2345
2734
2998
211
那么应该怎么写正则表达式呢.?
求各位大神指教.. 
如果正则表达式不能满足,还能有什么其他方法呢?
上述字符串只是测试的.. 
最好能给代码.. 
正则表达式.NETString

解决方案 »

  1.   

     string str = "234527342998211";
                string[] arrreg = Regex.Split(str, @"(?<=\G.{4})(?!$)");
      

  2.   

     string str = "234527342998211";
                var list = Regex.Split(str,@"(?<=\G\w{4})(?!$)");
                /*
                 *  [0] "2345" string
                [1] "2734" string
                [2] "2998" string
                [3] "211" string             */
      

  3.   


    "(^\d[0-9].*?)"
    Regex 表达式
      

  4.   

    四个一组就是这样
    呃,, 不是4个一组.. 实际情况是不确定长度的一组..  
    当参数传进去int len = 5;
                string str = "234527342998211";
                string[] arrreg = Regex.Split(str, @"(?<=\G\d{"+len+"})(?!$)");
      

  5.   


    Product Serial Number: 014
    2013-03-20 09:52 A0000 Device Plug In            Pass 16.910
    2013-03-20 09:52 A101A SB135A Detection          Pass 0.000
    2013-03-20 09:52 A1030 Set Speaker Volume Test   Pass 0.110
    2013-03-20 09:52 A1100 SB135x Initialise         Pass 1.887
    2013-03-20 09:52 A1261 (Setup Lo1->MicFP) (S3)->(FMic) Pass 6.147
    2013-03-20 09:52 F16160 RO (96k/24b Lo1->MicFP) (S3)->(FMic) Pass 1.205
    2013-03-20 09:52 A1212 (Setup Lo2->Li) (S4)->(S1) Pass 7.857
    2013-03-20 09:52 F11260 RO (96k/24b Lo2->Li) (S4)->(S1) Pass 1.211
    2013-03-20 09:52 F21261 FR (Lfc 96k/24b Lo2->Li)  Pass 1.744
    2013-03-20 09:52 F21262 FR (Ufc 96k/24b Lo2->Li)  Pass 1.003
    2013-03-20 09:52 F21263 FR (fm1 96k/24b Lo2->Li)  Pass 1.006
    2013-03-20 09:52 F21264 FR (fm2 96k/24b Lo2->Li)  Pass 1.006
    2013-03-20 09:52 F31260 SNR (96k/24b Lo2->Li)     Pass 1.006
    2013-03-20 09:52 F41260 SCU (96k/24b Lo2->Li)     Pass 0.000
    2013-03-20 09:52 F51260 LXTK (96k/24b Lo2->Li)    Pass 1.006
    2013-03-20 09:52 F51261 RXTK (96k/24b Lo2->Li)    Pass 1.006
    2013-03-20 09:52 A1213 (Setup Lo3->Li) (S5)->(S1) Pass 1.435
    2013-03-20 09:52 F11360 RO (96k/24b Lo3->Li) (S5)->(S1) Pass 1.201
    2013-03-20 09:52 F21361 FR (Lfc 96k/24b Lo3->Li)  Pass 1.740
    2013-03-20 09:52 F21362 FR (Ufc 96k/24b Lo3->Li)  Pass 1.016
    2013-03-20 09:52 F21363 FR (fm1 96k/24b Lo3->Li)  Pass 1.006
    2013-03-20 09:52 F21364 FR (fm2 96k/24b Lo3->Li)  Pass 1.006
    2013-03-20 09:52 F31360 SNR (96k/24b Lo3->Li)     Pass 1.016
    2013-03-20 09:52 F41360 SCU (96k/24b Lo3->Li)     Pass 0.000
    2013-03-20 09:52 F51360 LXTK (96k/24b Lo3->Li)    Pass 1.006
    2013-03-20 09:52 F51361 RXTK (96k/24b Lo3->Li)    Pass 1.006
    2013-03-20 09:52 A1216 (Setup FHp->Li) (FHp)->(S1) Pass 6.068
    2013-03-20 09:53 F11660 RO (96k/24b FHp->Li) (FHp)->(S1) Pass 1.192
    2013-03-20 09:53 F21661 FR (Lfc 96k/24b FHp->Li)  Pass 1.731
    2013-03-20 09:53 F21662 FR (Ufc 96k/24b FHp->Li)  Pass 1.012
    2013-03-20 09:53 F21663 FR (fm1 96k/24b FHp->Li)  Pass 1.011
    2013-03-20 09:53 F21664 FR (fm2 96k/24b FHp->Li)  Pass 1.006
    2013-03-20 09:53 F31660 SNR (96k/24b FHp->Li)     Pass 1.012
    2013-03-20 09:53 F41660 SCU (96k/24b FHp->Li)     Pass 0.000
    2013-03-20 09:53 F51660 LXTK (96k/24b FHp->Li)    Pass 1.011
    2013-03-20 09:53 F51661 RXTK (96k/24b FHp->Li)    Pass 1.006
    2013-03-20 09:53 F11666 RO (96k/24b FHp33->Li) (FHp)->(S1) Pass 1.738
    2013-03-20 09:53 A1217 (Setup RHp->Li) (S2)->(S1) Pass 5.049
    2013-03-20 09:53 F11760 RO (96k/24b RHp->Li) (S2)->(S1) Pass 1.191
    2013-03-20 09:53 F21761 FR (Lfc 96k/24b RHp->Li)  Pass 1.732
    2013-03-20 09:53 F21762 FR (Ufc 96k/24b RHp->Li)  Pass 1.016
    2013-03-20 09:53 F21763 FR (fm1 96k/24b RHp->Li)  Pass 1.006
    2013-03-20 09:53 F21764 FR (fm2 96k/24b RHp->Li)  Pass 1.011
    2013-03-20 09:53 F31760 SNR (96k/24b RHp->Li)     Pass 1.006
    2013-03-20 09:53 F41760 SCU (96k/24b RHp->Li)     Pass 0.000
    2013-03-20 09:53 F51760 LXTK (96k/24b RHp->Li)    Pass 1.006
    2013-03-20 09:53 F51761 RXTK (96k/24b RHp->Li)    Pass 1.002
    2013-03-20 09:53 F11766 RO (96k/24b RHp33->Li) (S2)->(S1) Pass 1.747
    2013-03-20 09:53 F15560 RO (96k/24b So->Si) (S6)->(S7) Pass 2.301
    2013-03-20 09:54 A0001 Device Plug Out           Pass 47.372
                                   135.762
    Product Serial Number: 042
    2013-03-20 09:54 A0000 Device Plug In            Pass 33.260
    2013-03-20 09:54 A101A SB135A Detection          Pass 0.000
    2013-03-20 09:54 A1030 Set Speaker Volume Test   Pass 0.109
    2013-03-20 09:54 A1100 SB135x Initialise         Pass 1.888
    2013-03-20 09:54 A1261 (Setup Lo1->MicFP) (S3)->(FMic) Pass 6.115
    2013-03-20 09:55 F16160 RO (96k/24b Lo1->MicFP) (S3)->(FMic) Pass 1.199
    2013-03-20 09:55 A1212 (Setup Lo2->Li) (S4)->(S1) Pass 7.872
    2013-03-20 09:55 F11260 RO (96k/24b Lo2->Li) (S4)->(S1) Pass 1.212
    2013-03-20 09:55 F21261 FR (Lfc 96k/24b Lo2->Li)  Pass 1.744
    2013-03-20 09:55 F21262 FR (Ufc 96k/24b Lo2->Li)  Pass 1.010
    2013-03-20 09:55 F21263 FR (fm1 96k/24b Lo2->Li)  Pass 1.006
    2013-03-20 09:55 F21264 FR (fm2 96k/24b Lo2->Li)  Pass 1.006
    2013-03-20 09:55 F31260 SNR (96k/24b Lo2->Li)     Pass 1.000
    2013-03-20 09:55 F41260 SCU (96k/24b Lo2->Li)     Pass 0.000
    2013-03-20 09:55 F51260 LXTK (96k/24b Lo2->Li)    Pass 1.006
    2013-03-20 09:55 F51261 RXTK (96k/24b Lo2->Li)    Pass 1.012
    2013-03-20 09:55 A1213 (Setup Lo3->Li) (S5)->(S1) Pass 1.420
    2013-03-20 09:55 F11360 RO (96k/24b Lo3->Li) (S5)->(S1) Pass 1.201
    2013-03-20 09:55 F21361 FR (Lfc 96k/24b Lo3->Li)  Pass 1.739
    2013-03-20 09:55 F21362 FR (Ufc 96k/24b Lo3->Li)  Pass 1.011
    2013-03-20 09:55 F21363 FR (fm1 96k/24b Lo3->Li)  Pass 1.006
    2013-03-20 09:55 F21364 FR (fm2 96k/24b Lo3->Li)  Pass 1.006
    2013-03-20 09:55 F31360 SNR (96k/24b Lo3->Li)     Pass 1.000
    2013-03-20 09:55 F41360 SCU (96k/24b Lo3->Li)     Pass 0.000
    2013-03-20 09:55 F51360 LXTK (96k/24b Lo3->Li)    Pass 1.006
    2013-03-20 09:55 F51361 RXTK (96k/24b Lo3->Li)    Pass 1.012
    2013-03-20 09:55 A1216 (Setup FHp->Li) (FHp)->(S1) Pass 6.068
    2013-03-20 09:55 F11660 RO (96k/24b FHp->Li) (FHp)->(S1) Pass 1.192
    2013-03-20 09:55 F21661 FR (Lfc 96k/24b FHp->Li)  Pass 1.741
    2013-03-20 09:55 F21662 FR (Ufc 96k/24b FHp->Li)  Pass 1.002
    2013-03-20 09:55 F21663 FR (fm1 96k/24b FHp->Li)  Pass 1.012
    2013-03-20 09:55 F21664 FR (fm2 96k/24b FHp->Li)  Pass 1.002
    2013-03-20 09:55 F31660 SNR (96k/24b FHp->Li)     Pass 1.006
    2013-03-20 09:55 F41660 SCU (96k/24b FHp->Li)     Pass 0.000
    2013-03-20 09:55 F51660 LXTK (96k/24b FHp->Li)    Pass 1.006
    2013-03-20 09:55 F51661 RXTK (96k/24b FHp->Li)    Pass 1.006
    2013-03-20 09:55 F11666 RO (96k/24b FHp33->Li) (FHp)->(S1) Pass 1.747
    2013-03-20 09:55 A1217 (Setup RHp->Li) (S2)->(S1) Pass 5.049
    2013-03-20 09:55 F11760 RO (96k/24b RHp->Li) (S2)->(S1) Pass 1.192
    2013-03-20 09:55 F21761 FR (Lfc 96k/24b RHp->Li)  Pass 1.731
    2013-03-20 09:55 F21762 FR (Ufc 96k/24b RHp->Li)  Pass 1.000
    2013-03-20 09:55 F21763 FR (fm1 96k/24b RHp->Li)  Pass 1.012
    2013-03-20 09:55 F21764 FR (fm2 96k/24b RHp->Li)  Pass 1.006
    2013-03-20 09:55 F31760 SNR (96k/24b RHp->Li)     Pass 1.006
    2013-03-20 09:55 F41760 SCU (96k/24b RHp->Li)     Pass 0.000
    2013-03-20 09:55 F51760 LXTK (96k/24b RHp->Li)    Pass 1.006
    2013-03-20 09:55 F51761 RXTK (96k/24b RHp->Li)    Pass 1.011
    2013-03-20 09:56 F11766 RO (96k/24b RHp33->Li) (S2)->(S1) Pass 1.748
    2013-03-20 09:56 F15560 RO (96k/24b So->Si) (S6)->(S7) Pass 2.295
    2013-03-20 09:56 A0001 Device Plug Out           Pass 31.897
                                    136.575
    Product Serial Number: 036
    2013-03-15 20:47 A0000 Device Plug In            Pass 19.422
    2013-03-15 20:47 A101A SB135A Detection          Pass 0.000
    2013-03-15 20:47 A1030 Set Speaker Volume Test   Pass 0.110
    2013-03-15 20:47 A1100 SB135x Initialise         Pass 1.903
    2013-03-15 20:47 A1261 (Setup Lo1->MicFP) (S3)->(FMic) Pass 6.131
    2013-03-15 20:47 F16160 RO (96k/24b Lo1->MicFP) (S3)->(FMic) Pass 1.336
    2013-03-15 20:47 A1212 (Setup Lo2->Li) (S4)->(S1) Pass 7.878
    2013-03-15 20:47 F11260 RO (96k/24b Lo2->Li) (S4)->(S1) Pass 1.222
    2013-03-15 20:47 F21261 FR (Lfc 96k/24b Lo2->Li)  Pass 4.430 1
    2013-03-15 20:47 F21262 FR (Ufc 96k/24b Lo2->Li)  Pass 1.006
    2013-03-15 20:47 F21263 FR (fm1 96k/24b Lo2->Li)  Pass 1.006
    2013-03-15 20:47 F21264 FR (fm2 96k/24b Lo2->Li)  Pass 1.006
    2013-03-15 20:47 F31260 SNR (96k/24b Lo2->Li)     Pass 1.006
    2013-03-15 20:47 F41260 SCU (96k/24b Lo2->Li)     Pass 0.000
    2013-03-15 20:47 F51260 LXTK (96k/24b Lo2->Li)    Pass 1.006
    2013-03-15 20:47 F51261 RXTK (96k/24b Lo2->Li)    Pass 1.006
    2013-03-15 20:47 A1213 (Setup Lo3->Li) (S5)->(S1) Pass 1.466
    2013-03-15 20:47 F11360 RO (96k/24b Lo3->Li) (S5)->(S1) Pass 1.202
    2013-03-15 20:47 F21361 FR (Lfc 96k/24b Lo3->Li)  Pass 1.739
    2013-03-15 20:48 F21362 FR (Ufc 96k/24b Lo3->Li)  Pass 1.011
    2013-03-15 20:48 F21363 FR (fm1 96k/24b Lo3->Li)  Pass 1.006
    2013-03-15 20:48 F21364 FR (fm2 96k/24b Lo3->Li)  Pass 1.006
    2013-03-15 20:48 F31360 SNR (96k/24b Lo3->Li)     Pass 1.006
    2013-03-15 20:48 F41360 SCU (96k/24b Lo3->Li)     Pass 0.000
    2013-03-15 20:48 F51360 LXTK (96k/24b Lo3->Li)    Pass 1.016
    2013-03-15 20:48 F51361 RXTK (96k/24b Lo3->Li)    Pass 1.006
    2013-03-15 20:48 A1216 (Setup FHp->Li) (FHp)->(S1) Pass 6.068
    2013-03-15 20:48 F11660 RO (96k/24b FHp->Li) (FHp)->(S1) Pass 1.192
    2013-03-15 20:48 F21661 FR (Lfc 96k/24b FHp->Li)  Pass 1.739
    2013-03-15 20:48 F21662 FR (Ufc 96k/24b FHp->Li)  Pass 1.013
    2013-03-15 20:48 F21663 FR (fm1 96k/24b FHp->Li)  Pass 1.006
    2013-03-15 20:48 F21664 FR (fm2 96k/24b FHp->Li)  Pass 1.012
    2013-03-15 20:48 F31660 SNR (96k/24b FHp->Li)     Pass 1.006
    2013-03-15 20:48 F41660 SCU (96k/24b FHp->Li)     Pass 0.000
    2013-03-15 20:48 F51660 LXTK (96k/24b FHp->Li)    Pass 1.006
    2013-03-15 20:48 F51661 RXTK (96k/24b FHp->Li)    Pass 1.006
    2013-03-15 20:48 F11666 RO (96k/24b FHp33->Li) (FHp)->(S1) Pass 1.745
    2013-03-15 20:48 A1217 (Setup RHp->Li) (S2)->(S1) Pass 5.033
    2013-03-15 20:48 F11760 RO (96k/24b RHp->Li) (S2)->(S1) Pass 1.202
    2013-03-15 20:48 F21761 FR (Lfc 96k/24b RHp->Li)  Pass 1.741
    2013-03-15 20:48 F21762 FR (Ufc 96k/24b RHp->Li)  Pass 1.001
    2013-03-15 20:48 F21763 FR (fm1 96k/24b RHp->Li)  Pass 1.006
    2013-03-15 20:48 F21764 FR (fm2 96k/24b RHp->Li)  Pass 1.011
    2013-03-15 20:48 F31760 SNR (96k/24b RHp->Li)     Pass 1.006
    2013-03-15 20:48 F41760 SCU (96k/24b RHp->Li)     Pass 0.000
    2013-03-15 20:48 F51760 LXTK (96k/24b RHp->Li)    Pass 1.006
    2013-03-15 20:48 F51761 RXTK (96k/24b RHp->Li)    Pass 1.012
    2013-03-15 20:48 F11766 RO (96k/24b RHp33->Li) (S2)->(S1) Pass 1.745
    2013-03-15 20:48 F15560 RO (96k/24b So->Si) (S6)->(S7) Pass 2.285
    2013-03-15 20:49 A0001 Device Plug Out           Pass 20.618
                                    114.385实际情况是这样的.. 条件是截取Product Serial Number:到下个Product Serial Number:的字符串,
    然后最后一个Product Serial Number:到结尾. 
    怎么判断是否为最后一个Product Serial Number:
    求给出正则...
      

  6.   

    四个一组就是这样
    呃,, 不是4个一组.. 实际情况是不确定长度的一组..  
    当参数传进去int len = 5;
                string str = "234527342998211";
                string[] arrreg = Regex.Split(str, @"(?<=\G\d{"+len+"})(?!$)");

    好吧.. 你再看看9楼那堆数据...  我不知道是不是发帖的时候表达的意思错了..
      

  7.   

    (?is)(?<=Product Serial Number: \d{3}).*?(?=Product Serial Number: \d{3}|$)
      

  8.   

    这个正则表达式能讲解下是什么意思吗?
    确实能截取到数据,而且我想把Product Serial Number:也截取到..
    则按9楼的文本形式,,每一个Product都是一段字符串..  
    感觉这正则表达式的水好深.. 
      

  9.   

    即:
    Product .....
                  xxx
    为一个字符串,
    然后
    Product ....
                   xxx
    为第二个字符串.
      

  10.   

    即:
    Product .....
                  xxx
    为一个字符串,
    然后
    Product ....
                   xxx
    为第二个字符串.
    (?is)Product Serial Number: \d{3}.*?(?=Product Serial Number: \d{3}|$)
      

  11.   


    (?is)Product Serial Number: \d{3}.*?(?=Product Serial Number: \d{3}|$) (?is)(?<=Product Serial Number: \d{3}).*?(?=Product Serial Number: \d{3}|$)(?=exp) 匹配exp前面的位置 
    (?<=exp) 匹配exp后面的位置 
    所以第二个reg匹配不到Product Serial Number,第一个没有加,所以可以取到Product Serial Number
      

  12.   


    (?is)(?<=Product Serial Number: \d{3}).*?(?=Product Serial Number: \d{3}|$)
    (?is)(?=Product Serial Number: \d{3}).*?(?<=Product Serial Number: \d{3}|$)你可以试试这两句的结果差别
      

  13.   


    (?is)(?<=Product Serial Number: \d{3}).*?(?=Product Serial Number: \d{3}|$)
    (?is)(?=Product Serial Number: \d{3}).*?(?<=Product Serial Number: \d{3}|$)你可以试试这两句的结果差别

    其实我是没看懂(?is),(?<=)和(?=)这是什么东东
      

  14.   


    (?=exp) 匹配exp前面的位置 
    (?<=exp) 匹配exp后面的位置 ?<=Product Serial Number就是从这个字符串后面开始匹配,?=Product Serial Number就是从这个字符串之前匹配。你运行下2个,看看结果就能体会了,(?is)i是忽略大小写和单行,s是点号匹配一切字符(含换行符)
      

  15.   


    虽然你结贴了,我要纠正下,我打错了,(?is)i是忽略大小写和单行,s是点号匹配一切字符(含换行符) 红色字体删掉