幫忙寫個Regex

來源:互聯網
上載者:User
 
愛麗絲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]*?)
~';

我自己想了個,這個搞定。
  • 聯繫我們

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