原字符串@“SELECT(S1,TABLE,S1="CC")”
我要分解字符串为
str1="S1";
str2="TABLE"
str3=@"S1="CC""我用以下方法
Match m = Regex.Match("SELECT(S1,TABLE,S1="CC")",@"SELECT((.*?),(.*?),(.*?))");
if (m.Success)
{
  str1 = m.Groups[1].ToString()
  str2 = m.Groups[2].ToString()
  str3 = m.Groups[3].ToString()
}始终得不到正确的结果,反复改变Group的标号也不行。请熟悉正则表达式的指导一下,谢谢

解决方案 »

  1.   

    try..            Match m = Regex.Match("SELECT(S1,TABLE,S1=\"CC\")", @"SELECT\((.*?),(.*?),(.*?)\)");
                if (m.Success)
                {
                    string str1 = m.Groups[1].ToString();
                    string str2 = m.Groups[2].ToString();
                    string str3 = m.Groups[3].ToString();
                }
      

  2.   

    Match m = Regex.Match("SELECT(S1,TABLE,S1=\"CC\")", @"SELECT\((.*?),(.*?),(.*?)\)");
                if (m.Success)
                {
                    string str1 = m.Groups[1].ToString();
                    string str2 = m.Groups[2].ToString();
                    string str3 = m.Groups[3].ToString();
                    Debug.WriteLine(str1 + "\t" + str2 + "\t" + str3);
                }输出如下:
    S1 TABLE S1="CC"
      

  3.   

    "(",")","""d都应该转义,它们在Regex里是关键词