使用言語はPHPで、現在、webスクレイピングの勉強をしています。
wikipediaの記事中、主に画像の説明などで次のような記法が使われているのを目にします。
[[File:Mōko Shūrai Ekotoba 2.jpg|thumb|Samurai warriors facing Mongols during the [[Mongol invasions of Japan]]; [[Takezaki Suenaga|Suenaga]], 1293]]
[[File:Breakfast at Tamahan Ryokan, Kyoto.jpg|thumb|right|Breakfast at a ''[[Ryokan (Japanese inn)|ryokan]]'' or inn]]
wikipediaのwiki記法で書かれた文字列から、preg_match_allなどを使用して、
$result=Array(
Array(
[0]=>"[[File:Mōko Shūrai Ekotoba 2.jpg|thumb|Samurai warriors facing Mongols during the [[Mongol invasions of Japan]]; [[Takezaki Suenaga|Suenaga]], 1293]]",
[1]=>"Samurai warriors facing Mongols during the [[Mongol invasions of Japan]]; [[Takezaki Suenaga|Suenaga]], 1293"
),
Array(
[0]=>"[[File:Breakfast at Tamahan Ryokan, Kyoto.jpg|thumb|right|Breakfast at a ''[[Ryokan (Japanese inn)|ryokan]]'' or inn]]",
[1]=>"Breakfast at a ''[[Ryokan (Japanese inn)|ryokan]]'' or inn"
)
);
のような感じでfileタグと対応する説明文を取り出したいです。
最初は正規表現で'/([[.+?]])/'と試しましたが説明文中にも[[]]タグがあるためうまくいかず、"|"でexplodeして最後の要素を使用しようとしても、説明文中に[[Ryokan (Japanese inn)|ryokan]]のような表現があると、うまく解析できません。
どなたか上の配列のような結果を導くことができる方法を教えていただけないでしょうか。
よろしくお願いします。
※ちなみに上のfileタグは"https://en.wikipedia.org/w/index.php?title=Japan&action=edit"から使わせていただきました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/19 22:02