実現したいこと
以下のようなテキストから
PHP
1$string = ` 2<!-- wp:group {"blockId":"001"} --> 3<div class="wp-block-group"><!-- wp:paragraph --> 4<p>text1-1</p> 5<!-- /wp:paragraph --></div> 6<!-- /wp:group --> 7 8<!-- wp:group {"blockId":"002"} --> 9<div class="wp-block-group"><!-- wp:paragraph --> 10<p>text2-1</p> 11<!-- /wp:paragraph --></div> 12<!-- /wp:group --> 13`;
以下のような配列を正規表現で作りたいです。
PHP
1$array = array( 2 array( 3 'block_id' => '001', 4 'inner_text' => '<!-- wp:paragraph --> 5<p>text1-1</p> 6<!-- /wp:paragraph -->', 7 ), 8 array( 9 'block_id' => '002', 10 'inner_text' => '<!-- wp:paragraph --> 11<p>text2-1</p> 12<!-- /wp:paragraph -->', 13 ) 14);
試したこと
PHP
1$pattern = '/<!--\s*wp:group\s{"blockId":"[0-9]{3}"}\s-->\s<div\s*class="wp-block-group">(.*?)<\/div>\s<!--\s*\/wp:group\s*-->/s'; 2 3preg_match_all($pattern, $string, $matches);
とすると$matches[1][0]
でひとつめの
HTML
1<!-- wp:paragraph --> 2<p>text1-1</p> 3<!-- /wp:paragraph -->
は取得することはわかりました。
正規表現で複数の値を取得して配列に代入するにはどのようにすれば良いでしょうか
お心優しい方アドバイスいただければと思います

回答3件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/02/27 08:46
2023/02/28 01:52
2023/02/28 02:24
2023/02/28 04:14