2012-09-07 75 views
1

我正在尋找使用正則表達式刪除多個換行符。說我有這樣的文字:刪除PHP中的各種空格

"On the Insert tab\n \n\nthe galleries include \n\n items that are designed"

那麼我想

"On the Insert tab\nthe galleries include\nitems that are designed"

來取代它所以我的要求是:

  1. 它會刪除所有的多換行符並將用一個換行符
  2. 它會刪除所有的多個空格,將與一個空格替換

我搜索了很多

  • 空間將被削減,以及,但找不到解決辦法 - 我最接近的是這樣的一個Removing redundant line breaks with regular expressions

  • +0

    這裏是你的一部分空間:: http://stackoverflow.com/questions/2368539/php-replacing-multiple-spaces-with-a-single-space –

    +0

    @Sudhir我可以刪除多個空格,但我也需要刪除多個換行符。 –

    +0

    看到這裏:: http://stackoverflow.com/questions/6360566/replace-multiple-newline-tab-space –

    回答

    1

    使用此:

    echo trim(preg_replace('#(\s)+#',"$1",$string)); 
    
    +0

    當用'\ n'代替時,這將代替' \ n \ n '和''。 – DaveRandom

    +0

    不工作我用這個**進行了測試,「a \ n \ n \ nb」**失敗。 –

    +0

    @DevRandom:是的,你是對的... – Oussama

    0
    $text = str_replace("\r\n", "\n", $text); // converts Windows new lines to Linux ones 
    while (strpos($text, "\n\n") != false) 
        { 
         $text = str_replace("\n\n", "\n", $text); 
        } 
    

    這將理清換行符。