所以我需要preg_replace()
到
\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
来做答案 0 :(得分:1)
你可以用两个替代品来做:
$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);