string str = "aaa[12] bbbc[zxt] ccvcvcvxcvx[@5]xxcxcxcxc[f1]dsdsd"; 
Regex reg = new Regex(@"(?<=\[)[^\[\]]+(?=\])");
MatchCollection mc = reg.Matches(str);
foreach(Match m in mc)
{
    richTextBox2.Text += m.Value + "\n";
}
/*-----输出-----
12
zxt
@5
f1
*/例子的前后字符[]太特殊了 ,看花眼了,我想取= 和,之间要怎么写啊?
主要是这个正则例子太特别,没办法自己研究研究其他正则大大进来的话也请解答下

解决方案 »

  1.   

    (@"(?<=\[)[^\[\]]+(?=\])"
    给这个里面的(@"(?<=\[)里面的[换乘=
    另一个相同的原理不行么?
      

  2.   


    string str = "aaa=12, bbbc=zxt, ccvcvcvxcvx=@5,xxcxcxcxc=f1,dsdsd";
    Regex reg = new Regex(@"(?<=\=)[^,]+(?=,)");
    MatchCollection mc = reg.Matches(str);
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Value + "\n"; 
    }
                /*-----输出-----
                12
                zxt
                @5
                f1
                */
      

  3.   

    string str = "abc=12, bbbc=zxt, ddd";
                Regex regex = new Regex(@"(?<=\=)[^,]+(?=,)");
                MatchCollection mc = regex.Matches(str);
                foreach (Match m in mc)
                {
                    Console.WriteLine(m);
                }
      

  4.   


    这个正则排除的只是中括号,所以和空格无关,如果出错,可能是你的字符串中含有中括号,如果不是,那需要你把字符串贴出来看下原因=在正则中不是元字符,不需转义
    //如果逗号只是半角的
    Regex reg = new Regex(@"(?<==)[^=,]+(?=,)");
    //如果逗号可能有全角的
    Regex reg = new Regex(@"(?<==)[^=,]+(?=[,,])");