求preg_replace正則匹配改進

來源:互聯網
上載者:User
$body='副標題#e#




  “三川玲”是一名廣州出版人,真名叫做李玲。取“三川玲”做筆名,是為了紀念家鄉風物。畢業於華南師範大學, 在一家雜誌做過十年記者、編輯,曾是當時保健圖書熱的推手之一。和很多職場媽媽一樣,六年前當她生下女兒後開始關注育兒問題,並從事童書出版工作。


#p#千萬不要隨大流#e#


  總之,要以我為主,為我服務的態度,千萬不要隨大流、千萬不要超出自己的經濟能力,千萬不要抱著早教有魔力的態度,去盲目地選擇早教機構。


#p#為了升學,突擊學習#e#


  入學前的速成班:為了升學,突擊學習



  隨著丸子年齡的增長,我很快發現,有一類針對3~6歲孩子的早教班風風火火地存在著。


';

$body=preg_replace('正則', '',$body);
echo $body;


//這是DEDECMS裡的內容,現在我要做一個閱讀全文的頁面,也就是這頁文章不分頁,要把內容裡面的分頁標記都去了,要去除的標記主要包括有:
//1、段首的分頁標記“副標題#e#”
//2、中間的分頁標記“#p#千萬不要隨大流#e#”
//說明:#e#是標題,#p#是分頁,當然刪除也包括#e#和#p#字元了。


?>


對此,xuzuning 寫了個正則
$body=preg_replace('/(?:^|#p#).*?#e#\s*/s', '',$body);

但是我的需求忽略了一個問題,就是當前段首沒有“副標題#e#”分網頁標題的情況,比如:


$body='




  “三川玲”是一名廣州出版人,真名叫做李玲。取“三川玲”做筆名,是為了紀念家鄉風物。畢業於華南師範大學, 在一家雜誌做過十年記者、編輯,曾是當時保健圖書熱的推手之一。和很多職場媽媽一樣,六年前當她生下女兒後開始關注育兒問題,並從事童書出版工作。


#p#千萬不要隨大流#e#


  總之,要以我為主,為我服務的態度,千萬不要隨大流、千萬不要超出自己的經濟能力,千萬不要抱著早教有魔力的態度,去盲目地選擇早教機構。


#p#為了升學,突擊學習#e#


  入學前的速成班:為了升學,突擊學習



  隨著丸子年齡的增長,我很快發現,有一類針對3~6歲孩子的早教班風風火火地存在著。


';

$body=preg_replace('正則', '',$body);
echo $body;


//這是DEDECMS裡的內容,現在我要做一個閱讀全文的頁面,也就是這頁文章不分頁,要把內容裡面的分頁標記都去了,要去除的標記主要包括有:
//1、段首的分頁標記“副標題#e#”
//2、中間的分頁標記“#p#千萬不要隨大流#e#”
//說明:#e#是標題,#p#是分頁,當然刪除也包括#e#和#p#字元了。


?>

這樣會把第一頁的都給過濾了,求改進,當段首沒有分網頁標題標記時,不刪除第一頁內容。


回複討論(解決方案)

觀察了一下,#p# 和 #e# 總是在一行的

body=preg_replace('/(?:^|#p#).*?#e#\s*/', '',$body);

膜拜!嘿嘿。

  • 聯繫我們

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