字符串如下(无换行符)
aaa1xxxx  aaa2akjxk lka  baljxklj990 bbb19ksjk xxxx bbb1oiooioipoi bbb29i0xl bbb29090x aaa1xxxdxx  aaa2akjxk lka  baljxklj990 bbb19ksjk xxxx bbb1oiooioipoi bbb29i0xl bbb29090x规律是:aaa1,aaa2会1:1 的机会出现,aaa1和aaa2后面的字符可能不相同相同,如果出现aaa1,aaa2, 后边就可以跟有bbb1, bbb2,但是bbb1,bbb2出现的次数是{0,m}, bbb1和bbb2后面的字符可能不相同相同, 当然可能还有bbbN. 同时还希望可以分别取得aaa1,aaa2,bbb1等这些特别字符串开头的整个字符串。
这样的正则表达式怎么写啊,大侠请出援手哦
aaa1
aaa2
    bbb1
    bbb1
    bbb2
    bbb1
    bbb2
    bbbN
aaa1
aaa2
    bbb1
    bbb1
    bbb2
    bbb2
    bbbN

解决方案 »

  1.   

    符合这个字符窜的正则表达式
    为:  string pattern="((aaa1.*aaa2.*)(bbb[1-9][0-9]*.*)*)+";
      

  2.   

    不是很明白你要的结果,最的给出的就是只想要的结果吗?也就是只要aaaN和对应的bbbN,其余的字符串不管吗?如果不是那样,具体说一下你要的结果,或给出全部结果
    如果是那样,那用什么来接收结果,按顺序给出就可以了吗?
      

  3.   

    谢谢大家的回答!我再对问题作些补充说明。
    我想要的结果是aaa1到aaa2之前的,aaa2到bbb1之前的。也就是把这些特别Header和它后面的字符全取得,因为每个Header后面的内容还是需要继续解析的,但现在第一层都没解析开,内层的就更别说了。
      

  4.   

    必须分两步处理:
                MatchCollection mc = Regex.Matches(textBox1.Text, @"(?<aaa1>aaa1.*?)(?<aaa2>aaa2.*?)(?<content>bbb\d.*?((?=aaa1)|$))");
                foreach (Match m in mc)
                {
                    //这里可以处理m.Group["aaa1"].Value和m.Group["aaa2"].Value
                    MatchCollection mc1 = Regex.Matches(m.Groups["content"].Value, @"bbb\d*.*?(?=bbb\d|aaa1|$)");
                    foreach (Match m1 in mc1)
                    {
                        //这里可以处理m1.value,其内容为bbb开头
                    }
                    
                }
      

  5.   

    10楼的老大,我发现一个问题,用你给的方法,在切割时会丢失数据,比如我的string里有六对aaa1/aaa2,但分开时会第2,4,6个没取到,第1,3,5取值是正确的,请帮忙看看怎么回事吧
      

  6.   

    aaa11393630 LA     UA   O   aaa21393    FO LAT   bbb11393630    bbb213936     bbb3139363000291222008    bbb4139B-TVXV  0001    aaa113936300029122200 EUAM   O   aaa21H64P14 459  PME-CS  bbb3139363000291PPS  X bbb41393630002912220 bbb3139363H64P145459   FA.S                bbb4139363  bbb31393630 bbb41393630 H64P145 bbb3139363 bbb4139363000   aaa11393  O   aaa21393630002 PTW   bbb3139363000291222 bbb41393630  bbb31393630002912220HJKSO O bbb4139363  bbb3139363SS bbb41393630002912220080  aaa113936300FSIN. aaa213936PA bbb31393HP bbb4139363 aaa1139363000 ME aaa213936 PMM  bbb313 bbb41393630002912220 XD bbb31393630002 IR.FJEDPSS-B bbb413936300 0002 aaa113936300   O   aaa2139H6AP145563  bbb3139363000 SE.PV(X/Y) bbb4139363        原串很长,我把内容删了一部分,但Header没变,请帮忙看看,谢谢!!!
      

  7.   

    ?mc.Count
    6
    ?mc[0].Value
    "aaa11393630 LA    UA  O  aaa21393    FO LAT  bbb11393630    bbb213936    bbb3139363000291222008    bbb4139B-TVXV  0001    "
    ?mc[1].Value
    "aaa113936300029122200 EUAM  O  aaa21H64P14 459  PME-CS  bbb3139363000291PPS  X bbb41393630002912220 bbb3139363H64P145459  FA.S                bbb4139363  bbb31393630 bbb41393630 H64P145 bbb3139363 bbb4139363000  "
    ?mc[2].Value
    "aaa11393  O  aaa21393630002 PTW  bbb3139363000291222 bbb41393630  bbb31393630002912220HJKSO O bbb4139363  bbb3139363SS bbb41393630002912220080  "
    ?mc[3].Value
    "aaa113936300FSIN. aaa213936PA bbb31393HP bbb4139363 "
    ?mc[4].Value
    "aaa1139363000 ME aaa213936 PMM  bbb313 bbb41393630002912220 XD bbb31393630002 IR.FJEDPSS-B bbb413936300 0002 "
    ?mc[5].Value
    "aaa113936300  O  aaa2139H6AP145563  bbb3139363000 SE.PV(X/Y) bbb4139363        "?mc[0].Groups["aaa1"].Value
    "aaa11393630 LA    UA  O  "
    ?mc[1].Groups["aaa1"].Value
    "aaa113936300029122200 EUAM  O  "
    ?mc[2].Groups["aaa1"].Value
    "aaa11393  O  "
    ?mc[3].Groups["aaa1"].Value
    "aaa113936300FSIN. "
    ?mc[4].Groups["aaa1"].Value
    "aaa1139363000 ME "
    ?mc[5].Groups["aaa1"].Value
    "aaa113936300  O  "
    ?mc[0].Groups["content"].Value
    "bbb11393630    bbb213936    bbb3139363000291222008    bbb4139B-TVXV  0001    "
    ?mc[1].Groups["content"].Value
    "bbb3139363000291PPS  X bbb41393630002912220 bbb3139363H64P145459  FA.S                bbb4139363  bbb31393630 bbb41393630 H64P145 bbb3139363 bbb4139363000  "
    ?mc[2].Groups["content"].Value
    "bbb3139363000291222 bbb41393630  bbb31393630002912220HJKSO O bbb4139363  bbb3139363SS bbb41393630002912220080  "
    ?mc[3].Groups["content"].Value
    "bbb31393HP bbb4139363 "
    ?mc[4].Groups["content"].Value
    "bbb313 bbb41393630002912220 XD bbb31393630002 IR.FJEDPSS-B bbb413936300 0002 "
    ?mc[5].Groups["content"].Value
    "bbb3139363000 SE.PV(X/Y) bbb4139363        "没发现那里不正常的