如何替换另一个字符串中多行字符串的所有出现?

时间:2017-05-22 01:30:31

标签: c#

我试图替换另一个字符串中多行字符串的所有出现。假设输入包含输入文本,输出包含生成的文本, searchText 包含要找到的多行字符串和 replaceText 包含替换的多行字符串,我使用了这段代码:

output = input.Replace(searchText, replaceText);

问题是它只适用于单行字符串(不包括换行符)。如何使其适用于包含换行符的字符串?

e.g。

searchText = "ABC\nDEF";

replaceText = "text";

输入:

ABC
DEF
KLF
Z

输出:

text
KLF
Z

1 个答案:

答案 0 :(得分:4)

您需要知道输入中新行的内容。它可能只是LF,但可能是CR + LF。

我有点懒得解释,所以请阅读这个维基百科关于新行:https://en.wikipedia.org/wiki/Newline

所以你的问题可能是因为CR也在那里,这使得要搜索的字符串完全不匹配。一种解决方案是将搜索文本设置为:

searchtext = "ABC" + System.Environment.NewLine + "DEF";

System.Environment.NewLine为您更好地处理新行。请参阅msdn中的参考:https://msdn.microsoft.com/en-us/library/system.environment.newline(v=vs.110).aspx