假设我有字符串如下:
where a = @aa and b =@bb or c=@cc 
现在我要把 = 号后面的 @aa,@bb,@cc 取出来,该怎么写呀。

解决方案 »

  1.   

    正则
    a = (?<1>[^\s]*?)\s*and\s*b = (?<2>[^\s]*?)\s*or\s*c = (?<3>[^\s]*?)
      

  2.   

    @aa,@bb,@cc 是否等长,规律就好办
    先判断位置indexof,再截取substring
      

  3.   

    trystring yourStr = richTextBox1.Text;
    MatchCollection mc = Regex.Matches(yourStr, @"@\S+");
    foreach (Match m in mc)
    {
         richTextBox2.Text += m.Value + "\n";
    }
      

  4.   

    string s = "where a = @aa and b =@bbbb or c=@ccccccc";
    Regex reg = new Regex(@"\@\w*");
    foreach (Match m in reg.Matches(s))
    {
        s = m.Value;
        MessageBox.Show(s);
    }
      

  5.   

    还得多向,lxcnn(过客)兄学习学习.
    我那样的表达式LZ就不要用了.