TSV文字列を分割したい。構造は次のとおりです。preg_split:空のフィールドを含む
abc\tdef\tghi\tjklm
\ tはタブ文字です。
私は、このような文字列$ I
$field=preg_split("/\t/", $i);
$フィールドを分割するpreg_splitを使用する場合は、[3] jklmです。
私は別の文字列
abc\tdef\t\t
$フィールドを持っている場合は、[3]の有効なインデックスではありません。
すべての$フィールド配列のインデックスが同じであるように、空のフィールドを$フィールドに強制するにはどうすればよいですか?ただタブ区切り値データを抽出するためのあなたの問題は、あなたがPHP関数(fgetcsv()
)で 組み込まれて使用できるかどう
これは正常な動作でなければなりません。あなたの例は、2と3が空の文字列である4つの要素で配列を戻します。 doc http://php.net/manual/de/function.preg-split.phpによれば、PREG_SPLIT_NO_EMPTYというフラグがあります。このフラグは、空の要素を戻したい場合には設定してはいけません。 – user1915746
なぜpreg splitを使用するのですか?これは正規表現の問題ではない '\ t'は静的なので正規表現を使う理由は? – Andreas