所以我需要preg_replace()
到
- 删除除a-z a-z 1-9以外的所有字符
- 用单下划线
's+
替换空格 - 如果字符串中有多个下划线,则需要将其替换为单机
[_]+
代码
$str = "Hz!! zÒ142______23 4";
$str = preg_replace('/[^a-zA-Z0-9][_]+'s+/', '_', $str);
echo $str; //Outputs: Hz_z142_23_4
编辑我想用单个preg_replace
您可以在两个替换中完成:
$str = preg_replace('/[^'w's]+/', '', $str);
$str = preg_replace('/[^a-zA-Z0-9]+/', '_', $str);
或者,就像在评论中一样,你可以将它们组合成一个:
preg_replace(array('/[^'w's]+/', '/[^a-zA-Z0-9]+/'), array('', '_'), $str);