1つの文字で区切られた一連のセグメントで構成される長い文字列があります~
。
例:
ST*Any*Characters*are*allowed*here~optional*segment*~optional*segment*~IT1*Any*Characters*are*allowed*here~optional*segment*~IT1*Any*Characters*are*allowed*here~IT1*Any*Characters*are*allowed*here~optional*segment*~optional*segment*~TDS*Any*Characters*are*allowed*here~optional*segment*~optional*segment*~
これは、新しい行がまったくない単一の文字列であることに注意してください。読みやすくするためにフォーマットしました。
出力は次のようになります。
Array{
[0]=>ST*Any*Characters*are*allowed*here~optional*segment*~optional*segment*
[1]=>Array{
[0]=>IT1*Any*Characters*are*allowed*here~optional*segment*
[1]=>IT1*Any*Characters*are*allowed*here
[2]=>IT1*Any*Characters*are*allowed*here~optional*segment*~optional*segment*
}
[2]=>TDS*Any*Characters*are*allowed*here~optional*segment*~optional*segment*
}
この出力は、入力文字列からどのように生成できますか?
重要なのは、これらのセグメント( ST
、、)の先頭は必須であるため保証することしかできませんが、その後にランダムな数のオプションのセグメントが続く場合があります。IT1
TDS
もちろん、セパレータ~
はセグメント間でのみ発生し、セグメント内では発生しない場合があります。
更新:文字列を3つの部分に分解する必要があります:
ST
の最初の出現までから始まる文字列IT1
。IT1
nextで始まり、nextで終わる文字列のコレクションIT1
。- 文字列の最後まで始まる
TDS
最後の文字列。