复制部分文本

本文关键字:文本 复制部 | 更新日期: 2023-09-27 18:05:43

我有一个包含更多行的.txt文件。如果短语的ID等于必要的,我需要在"之间复制文本

"1 one one one one one one ";
"2 twooooooooooooooooooooooooоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооoooo;
" 
3 three";
"4 four";

我使用这种方法:

  string line;
          using (StreamReader reader = new StreamReader(@"C:'test.txt"))
          {
              while ((line = reader.ReadLine()) != null)
              {
                  line = reader.ReadLine();
                  if (line.Contains("1")==true)
                      Console.WriteLine(line);
              }
              reader.ReadToEnd();
          }

但它不起作用,因为有时文本超过一行

复制部分文本

这应该能在中工作

var lines = File.ReadAllText(@"C:'test.txt")
     .Replace(Environment.NewLine, "")
     .Split(new[] { '"', ';' }, StringSplitOptions.RemoveEmptyEntries);

要获得特定线路,请使用WhereFirsOrDefault:

var line = lines.FirstOrDefault(x => x.StartsWith("1"));
var text = File.ReadAllText( @"C:'test.txt" );
var allStrings = text.Split( '"' ).Where( ( s, i ) => i % 2 == 0 );
var specificStrings = allStrings.Where( s => s.StartsWith( "1 " ) );

首先,我的代码不会杀死换行符。其次,它只读引号里的内容,完全忽略了引号外面的内容。然后,它清楚地定义了处理步骤(文件-文本-字符串-过滤字符串(。最后,它正确地搜索字符串#1,即不会捕获字符串#11或#111等。