如何在多行C#正则表达式中删除包含匹配项的整行?

时间:2011-09-05 21:19:41

标签: c# regex

我在字符串中有一组行:

alksjdlaksj asdkjf
askldjfak askdjfk
ksdjfk **Bogus** alskdjfalksdj
sadkljfal skdjfkd

并且需要删除其中包含'Bogus'的行。我可以用

Regex.Replace(result, @"^.*Bogus.*$", "", RegexOptions.Multiline);

检测并消灭所述行。但是,它留下了空白。我可以使用此正则表达式语句来清除空行吗?

2 个答案:

答案 0 :(得分:2)

让你的正则表达式非多线...然后在结尾添加一个换行符,以便它是匹配的一部分。

示例:

(^|\n).*Bogus.*\n?

答案 1 :(得分:0)

如果可能,在您的方案中,您可以使用普通String.Contains(),即

var result = string.Join(Environment.NewLine, sourceString.Split(Environment.NewLine)
    .Where(line => !line.Contains("Bogus")).ToArray());