我有一个文件,我需要找到一个特定的字符串并用另一个字符串替换它。该文件由外部系统创建或提交给我们。提交的文件每行有80个字符。如果文本文件中的单词不适合一行,则将其拆分为第一行末尾由=符号分隔的2行。在下面的示例中,SAMPLE STRING分为2行,SAM =在第一行,PLE STRING在第二行。下面给出一个例子
Line 1 text goes here SAM=
PLE STRING and the other texts of the file.
现在我需要查找是否存在SAMPLE STRING,然后替换为其他一些示例字符串。我在C#中编写了下面的代码,但如果跨越多行则无法找到该字符串。请帮忙。
string filecontents = System.IO.File.ReadAllText("c:\\mytext.txt");
if(filecontents.Contains("SAMPLE STRING"))
{
filecontents = filecontents.Replace("SAMPLE STRING", "SOME_OTHER_STRING");
}
答案 0 :(得分:1)
string filecontents = File.ReadAllText("c:\\mytext.txt");
// rebuild the splitted strings
filecontents = filecontents.Replace("=" + System.Environment.NewLine, "");
// remove line breaks from text
filecontents = filecontents.Replace(System.Environment.NewLine, " ");
// no need to use the Contains check, use a straightforward replacement (it will do nothing if the string is not present)
filecontents = filecontents.Replace("SAMPLE STRING", "SOME_OTHER_STRING");
完成此操作后,使用相同的条件将文本重新分成多行。由于替换样本的字符串具有不同的长度,如果不使用此方法(或等效方法)执行替换,则最终会将文本拆分为不等长的行。