【问题标题】:preg_replace: replace everything butpreg_replace:替换所有内容,但
【发布时间】:2011-07-21 11:11:20
【问题描述】:

我想从以下字符串中删除一些不需要的字符。 这是代码。

 $input="aecąßÄ1,.!?-_'\"/><";  
    $input=preg_replace('/[^\p{P}\p{L}\p{N}\s]*/u', '', $input); 

代码似乎运行良好,但输出中丢失了特殊字符。 这是我得到的。

   aec���1,.!?-_'"/  

代替

 aecąßÄ1,.!?-_'"/  

为什么会这样?

【问题讨论】:

  • 没有丢失,只是编码错误。

标签: php preg-replace character


【解决方案1】:

根据评论编辑:

尝试使用“真实”的字符:

$input=  preg_replace('/[^aecąßÄ1,.!?-_\'\"\/]/', '', $input);

最后一个答案:

如果要删除不需要的字符,可以使用更简单的正则表达式删除这些字符:

$input= "aecąßÄ1,.!?-_'\"/><";
$input=  preg_replace('/[<>]/', '', $input);

只需在正则表达式中将特殊字符放在 [ ] 之间即可。这适用于您的情况。

【讨论】:

  • 谢谢,但这不是我想要的。我想删除 'everything but' not 'everything like'。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多