私が直面している問題を少し視覚化するために、コードを前もって作成します。
- これは分割する必要のあるテキストです。
:20:0444453880181732 :21:0444453880131350 :22:CANCEL/ABCDEF0131835055 :23:BUY/CALL/E/EUR :82A:ABCDEFZZ80A :87A:4444655604 :30:061123 :31G:070416/1000/USNY :31E:070418 :26F:PRINCIPAL :32B:EUR1000000,00 :36:1,31000000 :33B:USD1310000,00 :37K:PCT1,60000000 :34P:061127USD16000,00 :57A:ABCDEFZZ80A
これは私の正規表現です
Regex r = new Regex(@"\:\d{2}\w*\:", RegexOptions.Multiline);
MatchCollection matches = r.Matches(Content);
string[] items = r.Split(Content);
// ----- Fix for first entry being empty string.
int index = items[0] == string.Empty ? 1 : 0;
foreach (Match match in matches)
{
MessageField field = new MessageField();
field.FieldIdExtended = match.Value;
field.Content = items[index];
Fields.Add(field);
index++;
}
コメントからわかるように、問題は文字列の分割で発生します。最初の項目として空の文字列を返します。これを解決するためのエレガントな方法はありますか?
ありがとう、ディミ