遇到正則難題,請高手指點

來源:互聯網
上載者:User
大家好,我正在做正則匹配,想把以下屬性名稱(如顏色分類和套餐類型)和屬性值(白色,黑色,套餐一,套餐二,套餐三)抽取出來,我的做法是先把每個
中間的內容通過正則匹配出來,然後用程式再把 裡面的
屬性名稱
和 屬性值匹配出來,但是第一步就測試失敗:/
.*)<\/dl> 我用的是這個樣的正則匹配每個
,但是一直弄不好,請高手指點,謝謝。


顏色分類





  • 白色

    已選中



  • 黑色

    已選中





套餐類型





  • 套餐一

    已選中



  • 套餐二

    已選中



  • 套餐三

    已選中




回複討論(解決方案)

//自己到網上下一個include('simple_html_dom.php');$dom=new simple_html_dom();$dom->load($s);//$s 就是你的html$dls=$dom->find('dl');$res=array();foreach($dls as $k=>$dl){$res[$k]['type']=$dl->find('dt')[0]->text();foreach($dl->find('li') as $k1=>$li){$res[$k][] = $li->find('span')[0]->text();}}echo "
";print_r($res);echo "
";/*Array( [0] => Array ( [type] => 顏色分類 [0] => 白色 [1] => 黑色 ) [1] => Array ( [type] => 套餐類型 [0] => 套餐一 [1] => 套餐二 [2] => 套餐三 ))*/

$s =<<< HTML
  
顏色分類
  • 白色 已選中
  • 黑色 已選中
套餐類型
  • 套餐一 已選中
  • 套餐二 已選中
  • 套餐三 已選中
HTML;preg_match_all('#
Array( [0] => Array ( [0] => 顏色分類 [1] => 白色 [2] => 黑色 ) [1] => Array ( [0] => 套餐類型 [1] => 套餐一 [2] => 套餐二 [3] => 套餐三 ))
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.