【发布时间】:2011-09-09 05:32:29
【问题描述】:
我正在尝试将我之前在 bash 中编写的脚本移植到 PHP 中。一个特定的行是关于转义所有非字母数字字符。
在 bash 中,我能够将其作为单行执行,如下所示:
echo "aaa bbb::" | sed 's/\([^a-zA-Z0-9]\)/\\\1/g'
# => aaa\ bbb\:\:
我在 PHP 中最接近的是:
echo preg_replace('/([^a-zA-Z0-9])/','\\\','aaa bbb::');
# => aaa\bbb\\
但是我很难在 preg_replace 中重用我的正则表达式组(我尝试了 \1 和 $1)。
有人可以帮我搞定这个 PHP 单线器吗?
【问题讨论】:
-
可能是个愚蠢的问题,但为什么你需要转义所有非字母字符?
-
因为我正在为
mod_rewrite生成过滤器,但它并不喜欢它们。
标签: php regex escaping alphanumeric