c# - 字符串 : replace a line which contains a word

标签 c#

我从多行文本框中复制了一个字符串。我正在寻找一种方法来替换包含特定短语的整行。 例如,字符串如下所示:

Lorem ipsum dolor sit amet, 
consectetur adipiscing elit. 
Suspendisse egestas.

所以我想找到一种方法来用新行 enim vehicula pellentesque. 替换包含例如短语 elit 的整行。因此结果将是:

Lorem ipsum dolor sit amet, 
enim vehicula pellentesque. 
Suspendisse egestas.

有什么快速的方法吗?

谢谢

最佳答案

var regex = new Regex(@"^.*\Welit\W.*$", RegexOptions.Multiline);
string result = regex.Replace(original, "enim vehicula pellentesque.");

RegexOptions.Multiline 是关键;它说应用 ^, ( = "beginning") 和 $ ( = "end") 来表示行的开始和结束,而不是字符串的开始和结束。

\W 会在 elit 的两边寻找非单词字符,例如fooelit 不会匹配,但 foo elit 会匹配。

关于c# - 字符串 : replace a line which contains a word,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908034/

相关文章:

c# - UserManager.CreateAsync 不生成 Id

c# - 是否有 C# 不与 .NET mono GC 交互的类似列表的数据结构?

c# - C# setter 中的 ArgumentNullException

c# - AutoMapper 和 EF 实体 - 忽略所有关系

c# - 如何将自定义类型的列表/数组写入 HDF5 文件?

c# - 在 mvc 中使用密码字段

c# - 在 .NET 中创建 XMLSerializer 会引发异常

c# - 遇到 Entity Framework 问题

c# - Entity Framework 中的单向一对一关系

c# - 使用 Newtonsoft 简化对象的反序列化