如何删除注释行

时间:2012-09-10 06:50:01

标签: c# sql stored-procedures

请告知我如何运行时删除我的商店程序中注释掉的代码/ * .. * /。以下示例:如果我的SP在下面以这种方式找到了一大堆注释代码,则将删除所有注释代码,包括注释符号。

/*
    INSERT INTO MATERIAL.GTT_DMD
      (
      asof_src_dt
      , asof_src_tm
      )
        SELECT
       asof_src_dt
       , CAST (asof_src_ts AS  TIME(0)) AS asof_src_tm
     FROM  DEMAND.v_supl SNP_DMD
*/

感谢您的支持,我找到了正则表达式

/\*[\w\W]*?(?=\*/)\*/

您能否帮助查看这是否是删除代码的最佳方式。感谢。

public void DeleteCommentedCode(string filePath)
    {
        StreamReader input = new StreamReader(filePath);

        Regex pattern = new Regex("/\*[\w\W]*?(?=\*/)\*/");            

          StreamReader streamReader = new StreamReader(filePath);
        StreamWriter streamWriter = new StreamWriter(filePath + ".tmp");

        while (!streamReader.EndOfStream)
        {
            string data = streamReader.ReadLine();
            if(pattern.IsMatch(data))
            {
                data = data.Replace(data, ""); // Replace with empty 
                streamWriter.WriteLine(data);
            }

        }

        streamReader.Close();
        streamWriter.Close();
    }

1 个答案:

答案 0 :(得分:1)

假设您的意思是从存储过程中删除注释,此处有关于提取SP内容的帖子。

C#/SQL Get all Stored Procedures and their Code

要删除您可以尝试使用正则表达式的注释,这里有一篇关于使用一些RegEx示例清理SQL Statments的好文章。

http://larrysteinle.wordpress.com/2011/02/09/use-regular-expressions-to-clean-sql-statements/