php抓取百度郵編搜尋結果,應改如何寫Regex?

來源:互聯網
上載者:User
本人小白,想通過百度郵編搜尋截取一個地址的郵編,在自己的網站空間裡放了個php指令碼。
因為要求不是很高,試圖通過正則匹配找到第一組“首位不為0的六位元字”,作為結果輸出,但是不管怎麼嘗試,得到的始終是一個空數組……
Regex是我從網上找的,也是過不同的形式,但是始終都得不到任何值

");echo($clear_result);echo("
");$zipcodes = search_for_zipcodes($clear_result);print_r($zipcodes);function search_for_zipcodes($test) { $rule = '/^[1-9]\d{5}$/'; preg_match_all($rule,$test,$result); return $result;} ?>

mb_detect_encoding($search_result),寫這一句是想看看返回回來的頁面的編碼,但是這個函數似乎也得不到任何結果……

如果漏洞百出煩請諸位大神耐心指教,本人真的是小白一隻……

回複內容:

本人小白,想通過百度郵編搜尋截取一個地址的郵編,在自己的網站空間裡放了個php指令碼。
因為要求不是很高,試圖通過正則匹配找到第一組“首位不為0的六位元字”,作為結果輸出,但是不管怎麼嘗試,得到的始終是一個空數組……
Regex是我從網上找的,也是過不同的形式,但是始終都得不到任何值

");echo($clear_result);echo("
");$zipcodes = search_for_zipcodes($clear_result);print_r($zipcodes);function search_for_zipcodes($test) { $rule = '/^[1-9]\d{5}$/'; preg_match_all($rule,$test,$result); return $result;} ?>

mb_detect_encoding($search_result),寫這一句是想看看返回回來的頁面的編碼,但是這個函數似乎也得不到任何結果……

如果漏洞百出煩請諸位大神耐心指教,本人真的是小白一隻……

題主啊, 你好.

我覺得, 你這個任務, 用不到正則.

為什麼呢?

請看裡面的搜尋結果是什麼?

        
  
郵編 行政地區
250102 山東省 濟南市 曆下區 經十路雙號2218-5150
250102 山東省 濟南市 曆下區 經十東路雙號33188-33688
250102 山東省 濟南市 曆下區 經十路單號177-3799
250102 山東省 濟南市 曆下區 旅遊路港溝水利站機關公寓

好完整的結果, 這已經是一個列表了.

因為具體還沒有看, 一會我來告訴你怎麼處理.我先php試一下.

  loadHTMLFile($url);libxml_clear_errors();$xPath = new DOMXPath($dom);//起作用的語句$trs = $xPath->query('//li/a/text()|//tr/td');//輸出結果foreach($trs as $tr) {     $str= $tr->nodeValue;    if(strlen($str)>6){    $str =  array_pop( explode(' ', $str));    }    echo $str;    break;}?>

http://phpfiddle.org/

你去phpfiddle 試一下吧, 還行. 做這種工作, xpath方便點.

(\d+)(.*?)@is", $search_result, $match);$area = array_map("strip_tags", $match[2]);print_r($match[1]);print_r($area);

把$rule = '/^[1-9]\d{5}$/';換成
$rule = '/[1-9]\d{5}/';試試
因為,你用了strip_tags.所以,很多內容,都直接合并成“一行”了。再用^,$應該是匹配不到的

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.