テキストを解析していますが、スペースが欠落している場合はピースを取得できません (これは問題ありません)
編集:フリー テキストにコロンを追加しました。
編集:まあ、これはキーと値のペアを書き込むことができる任意のテキスト形式です。element[0] を破棄すると、配列の残りの要素が一連のキー値になります。また、複数行の値を受け入れます。
これはテスト ケースのテキストです。
:part1 only one \s removed:OK
:part2 :text :with
new lines
on it
:noSpaceAfterThis
:thisShoudBeAStandAlongText but: here there are more text
:part4 :even more text
これは私が欲しいものです:
Array
(
[0] =>
[1] => part1
[2] => only one \s removed:OK
[3] => part2
[4] => :text :with
new lines
on it
[5] => noSpaceAfterThis
[6] =>
[7] => thisShoudBeAStandAlongText
[8] => but: here there are more text
[9] => part4
[10] => :even more text
)
これは私が得るものです:
Array
(
[0] =>
[1] => part1
[2] => only one \s removed:OK
[3] => part2
[4] => :text :with
new lines
on it
[5] => noSpaceAfterThis
[6] => :thisShoudBeAStandAlongText but: here there are more text
[7] => part4
[8] => :even more text
)
そして、これは私のテストコードです:
<?php
$text = '
:part1 only one \s removed:OK
:part2 :text :with
new lines
on it
:noSpaceAfterThis
:thisShoudBeAStandAlongText but: here there are more text
:part4 :even more text';
echo '<pre>';
// my effort so far:
$ret = preg_split('|\r?\n:([\w\d]+)(?:\r?\s)?|i', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($ret);
// nor this one:
$ret = preg_split('|\r?\n:([\w\d]+)\r?\s?|i', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($ret);
// for debuging, an extra capturing group
$ret = preg_split('|\r?\n:([\w\d]+)(\r?\s)?|i', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
var_dump($ret);