如何用PHP替换字符串中的特殊字符?

时间:2012-09-26 12:32:10

标签: php regex

我有以下字符串:

a&b.c'd,e f

我如何看待

а_b_c_d_e_f

看起来像正则表达式模式?

提前致谢!

2 个答案:

答案 0 :(得分:7)

看起来很简单......

$str = "a&b.c'd,e f";
$str = preg_replace('#\W#', '_', $str);

...但它实际上应该取决于认为特殊的字符,因为\W等同于[^a-zA-Z0-9_](即,任何不是字母数字或'_的东西“)。在您的情况下,这可能是也可能不够;如果没有,也许你只是在这里使用一个角色类:

$str = "a&b.c'd,e f";
$str = preg_replace('#[^a-zA-Z0-9_-]#', '_', $str);

在此示例中,连字符'-'也不会被替换。

答案 1 :(得分:1)

使用preg_replace

$regex = "(.*)\W(.*)";
$content = "a&b.c'd,e f"
preg_replace($regex, "_", $content);