愛麗絲cos愛麗絲連衣裙愛麗絲夢遊仙境愛麗絲瘋狂迴歸愛麗絲花盆愛麗絲手辦alice女僕愛麗絲學園愛麗絲菲爾愛麗絲手包愛麗絲複古
我現在要取這個頁面的
到
之間這段內容裡的title的值和href的值,因為這個頁面其他地方也有這種格式,所以現在直接用
$contents_key = '~~';preg_match_all($contents_key,$html,$contentskey);
這樣會把dd標籤外的相同格式的也包含進來,問下這個正則應該怎麼寫?
回複討論(解決方案)
分兩步就是了,先把dd標籤內的內容匹配出來,再應用你的正則。
先把
到
之間的抓去出來 然後再去解析裡面的title和連結
分兩步就是了,先把dd標籤內的內容匹配出來,再應用你的正則。
但是現在直接抓取dd標籤也是抓取不到的
這dd標籤中間有很多空格,我用(.*?)匹配不到。
你最終想要的結果是什嗎?
你最終想要的結果是什嗎?
我就想要title=“這裡是我要的” href=“這裡也是我想要的”,而且最好是一個正則,感覺兩個正則要匹配兩次,效率是不是有點太低了?
$s=<< 愛麗絲cos 愛麗絲連衣裙 愛麗絲夢遊仙境 愛麗絲瘋狂迴歸 愛麗絲花盆 愛麗絲手辦 alice 女僕 愛麗絲學園 愛麗絲菲爾 愛麗絲手包 愛麗絲複古 dafdsafdiv;preg_match('/
(.+?)<\/dd>/s',$s,$m);echo $m[1];
愛麗絲cos
愛麗絲連衣裙
愛麗絲夢遊仙境
愛麗絲瘋狂迴歸
愛麗絲花盆
愛麗絲手辦
alice
女僕
愛麗絲學園
愛麗絲菲爾
愛麗絲手包
愛麗絲複古
試試用這個匹配dd的內容
$pattern = '/
.*<\/dd>/is'
修飾符i:不分大小寫
修飾符s:模式裡的一個"點"將匹配所有字元,包括換行.沒有他,換行將被排除在外.這個修飾符等同於Perl裡面的/s修飾符
$contents_key = '~
([\s\S]*?)
~';
我自己想了個,這個搞定。