![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
<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ランキング
-
Nvuで作成したhtmlをコピペして...
-
URLの結合
-
JSFタグのfタグとは
-
htmlタグ間の特定文字置換
-
こんにちは。PHPとMySQLで自作...
-
ソースコードの1行が長いとき...
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
全角括弧と全角読点の間隔を狭...
-
文字の入力で横バー上段、中断...
-
エクセルのCOUNTIFが正しくカウ...
-
メッセージボックスで1025文字...
-
記号は半角と全角どちらがよい...
-
文字化け変換方法
-
コンボボックスの項目中に改行を
-
16進数の文字列をアスキーコー...
-
Excel関数「COUNTIF」で”文字”...
-
ラベル(スタティックテキスト)...
-
PHPmailerでの添付ファイルの文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[php][正規表現]タグ以外を削除...
-
正規表現で複数行に渡る範囲を...
-
変数にHTMLを代入する場合
-
phpの正規表現でstyle="●●"を削...
-
正規表現でタグの置換をしたい...
-
コメントタグに挟まれた部分を...
-
Nvuで作成したhtmlをコピペして...
-
タグにはさまれている文字以外...
-
htmlタグ間の特定文字置換
-
htmlのソースからテーブルの値...
-
スクレイピングの仕方
-
Java正規表現-"ある文字列"を含...
-
JSFタグのfタグとは
-
htmlソースの中を検索して、
-
PHP 取得した経過時間の表示に...
-
eclipseより、タスク・タグの使...
-
タグとクッキーって関係あるん...
-
srcに「banner.」で始まるファ...
-
htmlspecialchars関数を使いな...
-
アクセス解析データがでません...
おすすめ情報