现在是有一段sql脚本
            string sql = @"
                            SELECT
                                *
                            FROM
                                Person
                            WHERE
                                FirstName = @FirstName
                          ";
我想写一段程序,把里面的参数全部找出来,该如何找?
就是说把@之后的提取出来,当然参数位置可能不定,有可能参数后面是逗号,空格,回车等

解决方案 »

  1.   


    分析规则需求
    设计匹配模式simple: @\w+
      

  2.   


    string sql = @" 
                                SELECT 
                                    * 
                                FROM 
                                    Person 
                                WHERE 
                                    FirstName = @FirstName and SecondName=@SecondName
                              ";
                string pattern = @"@\w+\b";
                List<string> prms = new List<string>();            Regex reg = new Regex(pattern);
                Match m = reg.Match(sql);
                while (m.Success)
                {
                    prms.Add(m.Value);
                    m = m.NextMatch();
                }