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

本文关键字:包含匹 删除 正则表达式 | 更新日期: 2023-09-27 18:07:45

我有一个字符串中的一组行:

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

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

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

来检测并清除所述行。然而,它留下了一个空白行。我可以使用这个正则表达式语句来清除空白行吗?

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

让你的正则表达式非多行…然后在末尾添加换行符,使其成为匹配的一部分。

的例子:

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

如果可能的话,您可以只使用普通的String.Contains(),即

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