1. 程式人生 > >preg_replace函式去除字串中的空格,逗號(,)等

preg_replace函式去除字串中的空格,逗號(,)等

$num=“1,2,3,4,5,6,7,8,86,9”;

1,如果格式是這樣子就用,PHP的preg_replace ,採用正則運算,去掉所有重複的","。

preg_replace(’#,{2,}#’,’,’,$num);

$num=",1,23,4,5,6,7,8";

2,如果字串前面的逗號應該用Itrim來去除","。

ltrim($num, “,”);

$num=“1,2,3,4,5,”;

2,如果字串後面的逗號應該用rtrim來去除","。

rtrim($num, “,”);

另:
關於php7+版本中 preg_replace /e修飾符已經棄用,可以preg_replace_callback的回撥函式/e修飾符

 
//第一種, 常用, 適合單一任務
$template = preg_replace_callback( //處理eval
    "/[\n\r\t]*\{eval\s+(.+?)\}[\n\r\t]*/is",
    function ($matches) { return str_replace("\\\"", "\"", preg_replace("/\<\?\=(\\\$.+?)\?\>/s", "\\1", "<? $matches[1] ?>")); },
    $template
);
 
//第二種, 當你需要同一正則處理多個任務時  [推薦]
function stripvtags($expr) {
    $expr = str_replace("\\\"", "\"", preg_replace("/\<\?\=(\\\$.+?)\?\>/s", "\\1", $expr));
    return $expr;
}
$template = preg_replace_callback( //處理eval
    "/[\n\r\t]*\{eval\s+(.+?)\}[\n\r\t]*/is",
    function ($matches) { return stripvtags("<? $matches[1] ?>"); },
    $template
);
$template = preg_replace_callback( //處理echo
    "/[\n\r\t]*\{echo\s+(.+?)\}[\n\r\t]*/is",
    function ($matches) { return stripvtags("<? echo $matches[1] ?>"); },
    $template
);
 
//第三種 跟第一種差不多, 只不過是分開寫
class Template {
    public function test() {
        $template = preg_replace_callback( //處理eval
            "/[\n\r\t]*\{eval\s+(.+?)\}[\n\r\t]*/is",
            array($this, 'stripvtagsEval'),
            $template
        );
    }
    protected function stripvtagsEval($matches) {
        return str_replace("\\\"", "\"", preg_replace("/\<\?\=(\\\$.+?)\?\>/s", "\\1", "<? $matches[1] ?>")); 
    }
}