我想从以下字符串中删除一些不需要的字符。 这是代码。
$input="aecąßÄ1,.!?-_'\"/><";
$input=preg_replace('/[^\p{P}\p{L}\p{N}\s]*/u', '', $input);
代码似乎工作正常,但输出中丢失了特殊字符。 这就是我得到的。
aec���1,.!?-_'"/
而不是
aecąßÄ1,.!?-_'"/
为什么会这样?
答案 0 :(得分:0)
根据评论编辑:
尝试使用“真实”字符:
$input= preg_replace('/[^aecąßÄ1,.!?-_\'\"\/]/', '', $input);
最后回答:
如果要删除不需要的字符,可以使用更简单的正则表达式删除该字符:
$input= "aecąßÄ1,.!?-_'\"/><";
$input= preg_replace('/[<>]/', '', $input);
在正则表达式中将[]放在[]之间。这将适用于您的情况。