请告知我如何运行时删除我的商店程序中注释掉的代码/ * .. * /。以下示例:如果我的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();
}
答案 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/