如何从字符串中删除"非常"的特殊字符?
心,星,公牛,版权等字符.
我找到了这个:
$re = "/\\p{S}/i";
$str = "asdas?sadsad";
$subst = "";
$result = preg_replace($re, $subst, $str);
Run Code Online (Sandbox Code Playgroud)
但它删除太多(例如"+"char).
您可以使用POSIX字符类print(ASCII墨水用户加上宽大的空格),即:
$str = "asdas?sadsad";
$str = preg_replace('/[^[:print:]]/', '', $str);
echo $str;
Run Code Online (Sandbox Code Playgroud)
输出:
asdassadsad
Run Code Online (Sandbox Code Playgroud)
正则表达式说明:
[^[:print:]]
Run Code Online (Sandbox Code Playgroud)
POSIX字符类中不存在的任何字符print «[^[:print:]]»$str = "asdas?sadsad";
$str = preg_replace('/[^`1234567890qwertyuiop\[\]asdfghjkl;\'zxcvbnm,\.-~!@%\^&\*\(\)_\+\{\}:\|<>\??????ó??QWERTYUIOPASDFGHJKLZXCVBNM?????Ó??]/i', '', $str);
echo $str;
Run Code Online (Sandbox Code Playgroud)
替换列表中不包含的所有字符.