复制部分文字

时间:2014-05-28 21:41:17

标签: c# html-agility-pack

我有更多行的.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();
          }

但它不起作用,因为有时会发出多行文字

2 个答案:

答案 0 :(得分:0)

这应该有效

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

要获取特定行,请使用WhereFirsOrDefault

var line = lines.FirstOrDefault(x => x.StartsWith("1"));

答案 1 :(得分:0)

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等。