请告知我如何在我的存储过程中运行时删除注释掉的代码 /* .. */。以下面的例子为例:如果我的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();
}