Php Preg_替换非字母数字和特殊字符
我正在尝试使用preg_replace删除字符串中超出指定白名单的任何字符。白名单应包含所有字母数字和常用标点符号,以及空格和以下内容:²ªº°©½¼¾®™ 我尝试使用以下方法来完成此任务:Php Preg_替换非字母数字和特殊字符,php,regex,Php,Regex,我正在尝试使用preg_replace删除字符串中超出指定白名单的任何字符。白名单应包含所有字母数字和常用标点符号,以及空格和以下内容:²ªº°©½¼¾®™ 我尝试使用以下方法来完成此任务: preg_replace("/[^[:alnum:][:punct:] ²¹º°©½¼¾®™]/","", $string); 但是,这会删除字符串中非法字符后面的所有内容,而不是仅删除非法字符。如果我只使用alnum、punct和space字符,它就可以正常工作,所以我认为问题在于结尾的特殊字符——但是
preg_replace("/[^[:alnum:][:punct:] ²¹º°©½¼¾®™]/","", $string);
但是,这会删除字符串中非法字符后面的所有内容,而不是仅删除非法字符。如果我只使用alnum、punct和space字符,它就可以正常工作,所以我认为问题在于结尾的特殊字符——但是我很难弄清楚如何正确地包含它们
例如:
“test test₣test test”变为“test test”,但我希望它变为“test test test”您希望使用
是的,就是这样。谢谢!
$str = preg_replace('/[^[:alnum:][:punct:] ²¹º°©½¼¾®™]/u', '', $str);