我的HTML中有类似这样的代码很多条:
<td align="middle"><span class="base_txtdiv" cdm="jpi_flighttypeli" mod="jmpInfo" mod_jmpinfo_page="fltDomestic_planeType.asp?CraftType=733">733</span></td>
我想取出其中的红色部分!我有下面代码:
preg_match_all('~ mod="jmpInfo" mod_jmpinfo_page="fltDomestic_planeType.asp?CraftType=[\d]{1,}">(.*?)</span></td><td align="middle">~is',$html,$data);
print_r($data);
为何取不到啊???

解决方案 »

  1.   


    preg_match_all('~mod_jmpinfo_page="fltDomestic_planeType.asp\?CraftType=([\d]+)">([\d]*)</span></td>~is',$html,$data);
    print_r($data);
      

  2.   

    preg_match_all('~mod_jmpinfo_page="fltDomestic_planeType.asp\?CraftType=([\d]+)">([\d]*)</span></td>~is',$html,$data);
    print_r($data);
      

  3.   

    preg_match_all("'<\s*span\s.*?>(.*?)</span>'isx", $html, $data);
    print_r($data);
      

  4.   


    好像你的回答不对哦  我所有的其他HTML中,你所说的地方也没加,但是行上面的我按照你所说的加上也没用
      

  5.   

    转义字符,还有正则要放到//中$pattern="/(mod_jmpinfo_page=\"fltDomestic_planeType\.asp\?CraftType=[\d]{3,}\">=[\d]{3,}<\/span>)/";
    preg_match_all($pattern,$html,$data);
    print_r($data);