テキストファイル:
$3.00,0.00,0.00,1.00,L55894M8,$3.00,0.00,0.00,2.00,L55894M9
L55894M8
行を分割して、やのようなシリアル番号を取得するにはどうすればよいL55894M9
ですか?
4 番目のコンマと 9 番目のコンマの後に表示されるデータを取得するには、次のようにします。
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() });
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"
正規表現を試してください。
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);
ファイルが文字列の場合は、文字列の.split(',')
メソッドを使用して、結果の配列の各要素を確認できます。または、データのパターンが全体に見られる場合は、5 番目の要素ごとに取得します。
あなたのサンプルでは、( 4 、 9 、 14 .... )のインデックスで単語を取得したいということです
そしてパーティーとしての5つの言葉。
だからあなたはこの方法を試すことができます.....
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();
}