PHP:如何删除所有正则表达式?

时间:2010-02-07 10:35:35

标签: php regex

如何从字符串中删除所有正则表达式特殊字符?

例如:我想要“/^bla\/bla\/bla\//i”:“bla/bla/bla/


我想这在我想到的背景下确实不可能。感谢您的回复

3 个答案:

答案 0 :(得分:1)

我不确定这是否能解答您的问题,但您是否正在寻找preg_quote(http://us.php.net/manual/en/function.preg-quote.php)函数?

答案 1 :(得分:0)

我并不完全明白你要做什么,但如果你只是想从字符串中删除某些字符,最好使用strtr()。一方面,它比 更快,它也可能更具可读性。

编辑:其实我真的不明白你想要实现的目标。

答案 2 :(得分:0)

    <?php 
    $string = "/^bla\/bla\/bla\//i";
    $patterns = array(
        "/\/\^([\w]+)/i" => "$1/",
        "/[\/]{2,}i$/i" => "/",
        "/\\\/" => "",
        "/[\/]{2,}/" => "/",
        "/\/$/" => "",
    );
    echo preg_replace(array_keys($patterns),$patterns,$string);

    //OR, this:
    echo    "\n";

    $string = "/^bla\/bla\/bla\//i";
    $pattern = "/(?![\/\w]$)([\w]+)/";
    preg_match_all($pattern,$string,$matches);
    echo join('/',$matches[0]);
?>