次のような文字列を取得しました。
== Paragraph ==
=== title 1 ===
content
=== Title 2 ===
other content
== Paragraph 2 ==
=== asd1 ===
dfdsfdsfdsfdsfdsfsdfdsf
=== asd2 ===
fgdfgfdgfdgfdgfdgfdgfdg
私はそれを次のように配列に解析しようとしています:
$arr = array(
array("title"=>"Paragraph", "content" => "=== title 1 ===
content
=== Title 2 ===
other content "),
array("title"=>"Paragraph 2", "content" => "=== asd1 ===
dfdsfdsfdsfdsfdsfsdfdsf
=== asd2 ===
fgdfgfdgfdgfdgfdgfdgfdg"));
私は段落名を取得するためにこのexpessionを試しました:
preg_match_all("@== (.*?) ==.*?@is", $data, $paragraphs);
しかし、この式は、段落全体と一致しないため、出力が次のようになり、内容が取得されないため、思い通りに機能しません。
Array
(
[0] => Paragraph
[1] => title 1
[2] => Title 2
[3] => Paragraph 2
[4] => asd1
[5] => asd2
)
私も試しました(正規表現で改行を使用する方法がわからないnl2br cuz)
$data = nl2br($data);
preg_match_all("@== (.*?) ==<br />.*?@is", $data, $paragraphs);
しかし、結果は次のようになります。
[0] => Array
(
[0] => == Paragraph == <br />
=== title 1 ===<br />
content<br />
<br />
=== Title 2 ===<br />
other content <br />
<br />
== Paragraph 2 ==<br />
)
正規表現がよくわからず、問題を解決する方法がわかりません。