string Y3 = Regex.Match(Y01, @"(?is)(?<=MSG\b ).*?(?=MSG\b)").Value;
 int CountX20 = Regex.Matches(Y3, "DB").Count;
 if (CountX20 == 1)  

 string r2 = Regex.Match(Y3, "(?<=DB).*?(?=\n)").Value;
 textBox33.Text = r2 ; }为什么textBox33.Text里面是空白??确认Y3里面有内容并且仅含有一个DB,并且DB后也有内容和回车符。。..而且别的框用相同的语句也有显示这个调了半天也没弄明白,请问大神们有知道为什么的么??

解决方案 »

  1.   

    LZ的描述看不出问题来。如果以LZ的代码来看那就文本框应该本来就应该是空啊
    string Y3 = Regex.Match(Y01, @"(?is)(?<=MSG\b ).*?(?=MSG\b)").Value;  //据LZ描述:Y3的值等于"DB\n";
     int CountX20 = Regex.Matches(Y3, "DB").Count; //这里匹配DB那得出来的结果就是1
     if (CountX20 == 1)     //会进if
    {  
     string r2 = Regex.Match(Y3, "(?<=DB).*?(?=\n)").Value;  //这里对"DB\n"字符串进行匹配,匹配字符串 "DB"和"\n"中间的字符串,那么r2就是""字符串
     textBox33.Text = r2 ;  //那把空字符串赋给ID为textBox33文本框,显示结果肯定是空白啊
     }
      

  2.   

    string Y222 = "DB AFGFGAGFGFGDGF \n";
    string r2 = Regex.Match(Y222, "(?<=DB).*?(?=\n)").Value;
    textBox43.Text = r2 ;
    这样是不是就可以在43中看r2中有没有值了??
      

  3.   

    不是,Y3中是:MSG 7361012 A 0212 01JAN07 TA M PL
    DB ELECTRONIC ENGINE (R ENG, CH B)
    MSG 7361012 A 0213 01JAN07 TA M PL