复制部分文本
本文关键字:文本 复制部 | 更新日期: 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);
要获得特定线路,请使用Where
或FirsOrDefault
:
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等。