我有更多行的.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();
}
但它不起作用,因为有时会发出多行文字
答案 0 :(得分:0)
这应该有效
var lines = File.ReadAllText(@"C:\test.txt")
.Replace(Environment.NewLine, "")
.Split(new[] { '"', ';' }, StringSplitOptions.RemoveEmptyEntries);
要获取特定行,请使用Where
或FirsOrDefault
:
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等。