php勉強中の初心者です。
いろいろなサイトから住所をスクレイピングするプログラムを練習しているのですが、
正規表現の部分でわからないことがあり質問させていただきます。
if(preg_match("/^(東京都|北海道|(?:京都|大阪)府|.{6,9}県)((?:四日市|廿日市|野々市|かすみがうら|つくばみらい|いちき串木野)市|(?:杵島郡大町|余市郡余市|高市郡高取)町|.{3,12}市.{3,12}区|.{3,9}区|.{3,15}市(?=.*市)|.{3,15}市|.{6,27}町(?=.*町)|.{6,27}町|.{9,24}村(?=.*村)|.{9,24}村)(.*)/",$url_data,$matches)){ echo "住所 : ".$matches[0]; }
if と preg_matchで正規表現を使って検索をかけているのですが、このままだと、
「愛知県刈谷市に本社を構える我が社は創業1968年に〜・・・」
とか
「大阪市中央区道頓堀1-6-4(タップで地図が開きます)」
などのように、ほしい住所情報以外のものまでついてきてしまいます。
なんとかこれを解消するコード、あるいは、考え方をご教授お願いいたします。
◆追記◆
正規表現の一番最後の
(.*)
この部分をなんとかすればいいというのはわかるのですが・・・
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/13 14:11