我试图替换另一个字符串中多行字符串的所有出现。假设输入包含输入文本,输出包含生成的文本, searchText 包含要找到的多行字符串和 replaceText 包含替换的多行字符串,我使用了这段代码:
output = input.Replace(searchText, replaceText);
问题是它只适用于单行字符串(不包括换行符)。如何使其适用于包含换行符的字符串?
e.g。
searchText = "ABC\nDEF";
replaceText = "text";
输入:
ABC
DEF
KLF
Z
输出:
text
KLF
Z
答案 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