
<html>
<div></div>
<div class="content">
<b>内容<b/><br />
<img src="#" />
<p>ほげほげほげほげ</p>
</div>
<div></div>
</html>
上のようなHTMLがあるとします。<div>の前後にもhtmlは書かれています。
そこから正規表現で<div class="content">~~~</div>の中身を取り出したいのですが、できません。
言語はPHPで、
/<div class=\"content\">.*<\/div>/
と書いてみたんですが、改行などがありうまくいきませんでした。
どのようにに記述すればうまくいくんでしょうか。
No.3ベストアンサー
- 回答日時:
> preg_match(/<div class=\"content\">.*<\/div>/s),$target);
> と書いて、divの中身を取り出すことはできたのですが、
> <div class="content">の対の</div>ではなく、html文中にある一番最後の</div>が対象になってしまいました。
* だと最長一致なので
代わりに最短一致の *? を使ってみてはどうでしょう。
(/<div class=\"content\">.*?<\/div>/s
No.2
- 回答日時:
preg_* なら sオプションを追加してください。
mb_ereg*なら、パターンに埋め込み、かなあ。
"(?s)...."
この回答への補足
preg_matchを使っているんですが、sオプションは何を意味するんでしょうか?
マニュアルを見てもそれらしいものが見つからなかったんですが。
http://php.holywar.net/manual/ja/reference.pcre. …
すいません。書いてありました。
preg_match(/<div class=\"content\">.*<\/div>/s),$target);
と書いて、divの中身を取り出すことはできたのですが、
<div class="content">の対の</div>ではなく、html文中にある一番最後の</div>が対象になってしまいました。
1個目を指定などは可能でしょうか?
No.1
- 回答日時:
最初に全行を取込んでから処理してみては?
取込む際に無駄な改行コードを削除してから
正規表現でデータを取り出してみてはいかがでしょうか?
ありがとうございます。
\sで「空白文字(スペース、復帰文字、タブ、改行文字、ラインフィード)」みたいだったので下のように書いたのですが、
preg_replace("/\s/", '', $target);
<div class="content">が<divclass="content">のように、タグの中のスペースまで削除されてしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- HTML・CSS サルワカさんの吹き出しのスタイルシートについて。 https://saruwakakun.com/h 2 2022/10/28 22:55
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CGIファイルの書き換えについて...
-
eclipseより、タスク・タグの使...
-
URLの連続アクセス
-
PHPの正規表現でHTMLタグの内容...
-
VBAのコマンドボタンの文字列の...
-
文字の入力で横バー上段、中断...
-
ファイルから読み取った改行文...
-
ソースコードの1行が長いとき...
-
awkで改行を除いて文字列を抜き...
-
Excel VBS、ADODB.Streamで改行
-
正規表現
-
phpとhtml間のデータ送信時「テ...
-
エスケープ文字の復帰(¥r)と...
-
エディットボックスで改行
-
メッセージボックスで1025文字...
-
改行を読み飛ばす
-
mcryptで英数字(12未満)のみに...
-
最終行の改行について
-
C++のctime関数復帰値の改行
-
変数の先頭一行を削除するには...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseより、タスク・タグの使...
-
echoで画像を呼び出すことがで...
-
Nvuで作成したhtmlをコピペして...
-
PHPでのページ表示について
-
(コード付きです)文章の中か...
-
タグ
-
URLの連続アクセス
-
XSSで、<a><pre>タグだけを有効...
-
J-SH09 でのウェブ表示
-
ペナルティーについて
-
htmlのソースからテーブルの値...
-
クリッカブルマップはネスケで...
-
[正規表現][入れ子]ネストされ...
-
あるタグから対応するタグまで...
-
preg_replace() で特定の文字の...
-
強制ジャンプを中止したいです。
-
phpの定義済み関数
-
タグにはさまれている文字以外...
-
cHTMLのタグはHDMLでは
-
自分でタグ打ちして作ったペー...
おすすめ情報