PHPの正規表現にて、文字列内にdivタグがあり、そのdivタグ内に特定の文字が含まれている場合のみ、文字列からdivタグ要素のみ取得したいと考えています。
PHP
1$hoge = 'あいうえお<div class="hoge1">aaaa</div>かきくけこ<div class="hoge2">aaaa</div>'; 2 3$result = preg_replace_callback('/<div[^>]*>/', function($matches) { 4 print_r($matches); 5}, $hoge); 6
上記で、divタグのみの要素はとれて、matchesに値が入っているのですが、div要素2つともとれていまいます。
「<div class="hoge1">aaaa</div>」のみ取得したい場合、どのようにすれば良いかご教示ください。
"hoge1という文字列が入っている場合"、という条件を付け加えたいです。
XPath式の方が楽に取れそうな気がする。HTML DOM操作や、XMLパーサーとかはご存知でしょうか?
クラスだけでなく属性にhoge1を含むということで大丈夫ですか?
例えばdata-hoge1="1"とかdata-test="hoge123"とかもヒットするのでしょうか?
また、div内のテキストコンテントにヒットしてもいいのでしょうか?
divの中に別のHTML要素は絶対にないという保証はあるのでしょうか?
(とくにdivの中にdivがあったりすると正規表現では相当めんどくさい書き方になります)
今回は最初に回答していただいた方のやり方でうまくいきました!
複雑な場合もあるかと思いますが、今回は上記のようなシンプルな形だけでしたので、大丈夫でした。
回答1件
あなたの回答
tips
プレビュー