我有以下字符串:
a&b.c'd,e f
我如何看待
а_b_c_d_e_f
看起来像正则表达式模式?
提前致谢!
答案 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);