我有下面的字符串:
a&b.c'd,e f
Run Code Online (Sandbox Code Playgroud)
我怎么样
?_b_c_d_e_f
Run Code Online (Sandbox Code Playgroud)
看起来像正则表达式模式?
提前致谢 !
看起来很简单......
$str = "a&b.c'd,e f";
$str = preg_replace('#\W#', '_', $str);
Run Code Online (Sandbox Code Playgroud)
...但它实际上应该取决于你认为特殊的字符,\W相当于[^a-zA-Z0-9_](即任何不是字母数字或'_'的字符).在您的情况下,这可能是也可能不够; 如果没有,也许你只是在这里使用一个角色类:
$str = "a&b.c'd,e f";
$str = preg_replace('#[^a-zA-Z0-9_-]#', '_', $str);
Run Code Online (Sandbox Code Playgroud)
在此示例中,连字符'-'也不会被替换.