- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定文字列の取り出し方 複雑な正規表現)
特定文字列の取り出し方 複雑な正規表現
このQ&Aのポイント
- 特定文字列の取り出し方が分かりません。正規表現を使用して特定の文字列を抽出する方法を教えてください。
- 例えば、与えられた文字列から正規表現を使って「http://xyzxyz.com/20111101_123.jpg」と「http://xyzxyz.com/20111102_456.jpg」という特定の文字列を抽出することは可能ですか?
- お手数ですが、正規表現のパターンと結果を教えていただけますと幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
<img> 要素の src 属性をマッチさせるとすればこんな感じでしょうか。 $matches = array(); $pattern = '/<img\s[^>]*src="([^"]*)"[^>]*>/i'; preg_match_all( $pattern, $contents, $matches ); $matches = $matches[1]; 厳密性を追求するのであれば、 HTML DOM Parser や xml parser を使って、 要素を順に検証した方が良いでしょう。
その他の回答 (1)
- shimix
- ベストアンサー率54% (865/1590)
回答No.1
例示された内容では、どういう正規表現が適切なのか判断しかねますが、 $pattern = '/http:\/\/xyzxyz\.com\/[0-9]+_[0-9]+\.jpg/'; とすれば preg_match_all($pattern, $contents, $matches); で $matches に(例示されたケースでは)画像ファイルのURLが取得出来ると思います。
質問者
お礼
ご回答ありがとうございます。 説明が足りなかったようで、申し訳ありません。 どんな場合でも、「xyzxyz」とは限りません。 その文字列から、画像のURLを抽出したかったのです。
お礼
ご回答ありがとうございます。 ご察しのとおり、RSSから抽出をしようとしています。 別のHPからタイトルなどの抽出法までは、参考にしてもらいました。 その中にパーサのことは書かれていました。 教えていただいた、正規表現で実行すると 気持ちいいくらいに、抽出され、 感動さえ覚えました。 正規表現は、あらゆる特定文字を抽出してしまうんですね。 私は、いくら勉強しても 正規表現の作れません。 本当に助かりました。 ありがとうございます。 また、質問するかもしれませんので、 そのときは、よろしくお願いします。