※ ChatGPTを利用し、要約された質問です(原文:preg_matchの正規表現がうまくいかない)
preg_matchで正規表現がうまくいかない | ソースコードから<rdf:Description~~~/>を取得する方法
このQ&Aのポイント
質問者は、ソースコードから<rdf:Description~~~/>タグの情報を取得するために、preg_match_allを使用しましたが、正規表現がうまくいきませんでした。
質問者は、正規表現を調査しましたが、<rdf:Description~をマッチすることはできても、/>で閉じることができなかったと報告しています。
質問者は、正規表現がうまくいかない原因と、<rdf:Description~~~/>を抜き出すための正規表現を教えてほしいと求めています。
たとえば、http://gehasoku.com/?p=2のソースコードには
-------------------
<rdf:Description
rdf:about="http://www.com/aaa.html"
trackback:ping="http://www.com"
dc:title="タイトル"
dc:identifier="http://iii.com/bbb.html"
dc:subject="ハードウェア"
dc:description="1 名前:名無しさん "
dc:creator="soft_net"
dc:date="2012-02-21T20:05:01+09:00" />
-------------------
のような形の<rdf:Description~~~/>タグの情報ががいくつかあると思います。これらすべてを文字列として取得したくて、次のようなphpを作成しましたが、うまく動作しません。
原因はどうやらpreg_match_allの正規表現がうまくいっていないからのようですので、
<rdf:Description~~~/>を抜き出すことができる正規表現を教えてください。
自分でもここでチェックしながらやりましたが、
http://www.rider-n.sakura.ne.jp/regexp/regexp.php
<rdf:Description~をマッチすることはできても、/>で閉じることができませんでした。
よろしくお願いします。
<?php
$url="http://gehasoku.com/?p=2";
$html=file_get_contents($urls);
preg_match_all("/<rdf:Description(.*)?\/>/",$html,$match);
print_r($match);
foreach($match[1] as $value){
echo $value;
}
?>
お礼
下の方で無事にできました! 本当にありがとうございました