Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Preg_替换非字母数字和特殊字符_Php_Regex - Fatal编程技术网

Php Preg_替换非字母数字和特殊字符

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

我正在尝试使用preg_replace删除字符串中超出指定白名单的任何字符。白名单应包含所有字母数字和常用标点符号,以及空格和以下内容:²ªº°©½¼¾®™

我尝试使用以下方法来完成此任务:

preg_replace("/[^[:alnum:][:punct:] ²¹º°©½¼¾®™]/","", $string);
但是,这会删除字符串中非法字符后面的所有内容,而不是仅删除非法字符。如果我只使用alnum、punct和space字符,它就可以正常工作,所以我认为问题在于结尾的特殊字符——但是我很难弄清楚如何正确地包含它们

例如:

“test test₣test test”变为“test test”,但我希望它变为“test test test”

您希望使用


是的,就是这样。谢谢!
$str = preg_replace('/[^[:alnum:][:punct:] ²¹º°©½¼¾®™]/u', '', $str);