私は以下のようなHTML文字列を持っています:
$string = "\n<h2>heading 2</h2>\n\nwhatever we are doing is good to have one thing\n<h3>heading 3</h3>\nnext paragraph goes there\n<h2>new heading 2</h2>\n\npara succeeded for new heading 2\n\n<h2>heading 3</h2>\nand the rest of data";
見出しのテキスト(つまり、<h2>タグと</ h2>タグ内)とそれに続くテキスト(別の<h2>が見つかるまで)または文字列の終わりが必要です
私は次のようなことを試しました:
$pattern = "/<h2>((?:(?!(<\/h2>)).)*)<\/h2>(.*?)(<h2>)?/is";
しかし、これは望ましい結果をもたらしていません。
私は次のように取得したい:
Array
(
[0] => Array
(
[0] => <h2>heading 2</h2>
[1] => <h2>new heading 2</h2>
[2] => <h2>heading 3</h2>
)
[1] => Array
(
[0] => heading 2
[1] => new heading 2
[2] => heading 3
)
[2] => Array
(
[0] => whatever we are doing is good to have one thing\n<h3> heading 3<h3>/h3<h3>\nnext paragraph goes there
[1] => para succeeded for new heading 2
[2] => and the rest of data
)
)