我有一个包含以下字符串的文本文件:
--jonesj (release 00)
some sql goes here
--jonesj (release 01)
some sql goes here
--smithb (release 01)
some sql goes here
我想要做的是用空字符串替换所有已注释掉的SQL。结果字符串如下所示:
some sql goes here
some sql goes here
some sql goes here
在我的代码中实现之前,使用Notepad2作为我的测试依据,我正在尝试^--.*$
的RegEx。但是,这似乎突出显示整个文本文件。我在RegEx很糟糕,希望有人可以帮助我。
答案 0 :(得分:2)
您可以通过在多线模式下明确匹配行结束符\ r \ n来实现此功能。这样做的好处是也可以替换换行符(即评论所在的空行)
var input=@"--jonesj (release 00)
some sql goes here
--jonesj (release 01)
some sql goes here
--smithb (release 01)
some sql goes here";
var cleaned=Regex.Replace(
input,
@"^--.*(\r)?\n",
string.Empty,
RegexOptions.Multiline)
答案 1 :(得分:0)
我认为你可以逃脱这个:
var pieces = Regex.Split(input, "--[^\(]*\(release \d\d\)");
答案 2 :(得分:0)
您可以使用^--[^\n\r]*$
确保通配符与换行符不匹配,并且在贪婪模式下只匹配整个文件。