preg_replace:替换除以下内容之外的所有内容
我想从以下字符串中删除一些不需要的字符。 这是代码。
$input="aecąßÄ1,.!?-_'\"/><";
$input=preg_replace('/[^\p{P}\p{L}\p{N}\s]*/u', '', $input);
该代码似乎工作正常,但特殊字符在输出中丢失。 这是我得到的。
aec���1,.!?-_'"/
而不是
aecąßÄ1,.!?-_'"/
为什么会这样?
I want to remove some unwanted characters from the following string.
Here's the code.
$input="aecąßÄ1,.!?-_'\"/><";
$input=preg_replace('/[^\p{P}\p{L}\p{N}\s]*/u', '', $input);
The code seems to be working fine but the special characters are lost in the output.
Here's what I get.
aec���1,.!?-_'"/
Instead of
aecąßÄ1,.!?-_'"/
Why is it so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据评论进行编辑:
尝试使用“真实”字符:
最后一个答案:
如果您想删除不需要的字符,您可以使用更简单的正则表达式删除该字符:
只需将特殊字符放在正则表达式中的 [ ] 之间即可。这适用于您的情况。
EDIT based on comment:
Try to use "real" characters:
last answer:
If you want to remove unwanted characters, you can remove that characters with much simpler regex:
Just put that special characters between [ ] in regex. This will works in your case.