Regexp与变量

时间:2011-12-08 09:36:35

标签: php regex

我使用带有分隔符的flatfile数据库,分隔符由用户定义并存储在$this->_config->delimiter()中。我想在输入字符串上运行Regexp以安全地转义分隔符和\字符,例如。

// $this->_config->delimiter() = "|"
$input = "the quick | brown \ fox jumped";
// function returning output here
$output = "the quick \| brown \\ fox jumped";

如果你在没有正则表达式的情况下知道更好/更快的方法,我也会这样做。

是否可以使用正则表达式中的变量执行此操作?

2 个答案:

答案 0 :(得分:0)

您不需要正则表达式。做:

str_replace(array('\\', $this->_config->delimiter()),
            array('\\\\', '\\' . $this->_config->delimiter()),
            $variable);

答案 1 :(得分:0)

您可以使用strtr [docs]

$input = strtr($input, array(
    $this->_config->delimiter() => '\\' . $this->_config->delimiter(),
    '\\' => '\\\\'
));

DEMO