C# 如何拆分文本文件中的行
文本文件:C# 如何拆分文本文件中的行,c#,split,comma,C#,Split,Comma,文本文件: $3.00,0.00,0.00,1.00,L55894M8,$3.00,0.00,0.00,2.00,L55894M9 如何拆分行并获取序列号,如L55894M8和L55894M9?如果文件位于字符串中,则可以使用字符串的.split(',')方法,然后检查结果数组的每个元素。或者,如果数据模式贯穿始终,则抓取每5个元素。要获取出现在第4个逗号和第9个逗号之后的数据,您需要执行以下操作: var str = "$3.00,0.00,0.00,1.00,L55894M8,$3.00,
$3.00,0.00,0.00,1.00,L55894M8,$3.00,0.00,0.00,2.00,L55894M9
如何拆分行并获取序列号,如
L55894M8
和L55894M9
?如果文件位于字符串中,则可以使用字符串的.split(',')
方法,然后检查结果数组的每个元素。或者,如果数据模式贯穿始终,则抓取每5个元素。要获取出现在第4个逗号和第9个逗号之后的数据,您需要执行以下操作:
var str = "$3.00,0.00,0.00,1.00,L55894M8,$3.00,0.00,0.00,2.00,L55894M9";
var fieldArray = str.Split(new[] { ',' });
var serial1 = fieldArray[4]; // "L55894M8"
var serial2 = fieldArray[9]; // "L55894M9"
var pieces = line.Split(',');
var serial1 = line[3];
var serial2 = line[8];
编辑:进一步思考后,您的文件似乎有以$开头、以下一条记录结尾的记录。如果需要这些记录以及序列号(似乎是最后一个字段),可以执行以下操作:
var records = line.TrimStart('$').Split('$');
var recordObjects = records.Select(r => new { Line = r, Serial = r.TrimEnd(',').Split(',').Last() });
试试正则表达式
string str = "$3.00,0.00,0.00,1.00,L55894M8,$3.00,0.00,0.00,2.00,L55894M9";
string pat = @"L[\w]+";
MatchCollection ar= Regex.Matches(str, pat);
foreach (var t in ar)
Console.WriteLine(t);
在您的示例中,您的意思是希望获得索引(4、9、14…)中的单词 这五个字作为一个聚会 所以你可以试试这个方法
static void Main(string[] args)
{
string strSample = "$3.00,0.00,0.00,1.00,L55894M8,$3.00,0.00,0.00,2.00,L55894M9";
var result = from p in strSample.Split(',').Select((v, i) => new { Index = i, Value = v })
where p.Index % 5 == 4
select p.Value;
foreach (var r in result)
{
Console.WriteLine(r);
}
Console.ReadKey();
}
序列号是否总是在同一行的同一点上?它们是否总是出现在第4个逗号和第9个逗号之后?您的序列号是否总是以L开头,如L55894M8和L55894M9请不要在您的问题前面加上“C:”。这就是标签的作用。如果你用谷歌搜索“c#split line”,你就会得到答案。序列号总是不同的。但是序列号总是在同一条线上