仅在php中删除特殊字符和数字

仅在php中删除特殊字符和数字,php,preg-replace,Php,Preg Replace,如何在不删除字符串中的空白的情况下删除数字和特殊字符 例如: 我已经尝试了上面的代码,但它不工作。我也试着阅读php手册,但我不太理解其中的内容。我在网上找到的所有示例都从字符串中删除了空格。有人能告诉我怎么做,或者给我推荐一些好的读物吗 非常感谢。您可以使用 $input = "Random string with random 98 and %$% output"; $filtered_input = trim(preg_replace("/\s*(?:[\d_]|[^\w\s])+/",

如何在不删除字符串中的空白的情况下删除数字和特殊字符

例如:

我已经尝试了上面的代码,但它不工作。我也试着阅读php手册,但我不太理解其中的内容。我在网上找到的所有示例都从字符串中删除了空格。有人能告诉我怎么做,或者给我推荐一些好的读物吗

非常感谢。

您可以使用

$input = "Random string with random 98 and %$% output"; 
$filtered_input = trim(preg_replace("/\s*(?:[\d_]|[^\w\s])+/", "", $input));
echo $filtered_input;
输出:

Random string with random and output
请参阅和

详细信息:

  • \s*
    -0+空格(在需要删除的值之前)
  • (?:[\d\u]|[^\w\s])+
    -一个或多个数字、下划线或除单词和空格以外的任何字符

trim
函数删除任何产生的前导空格(如果有的话)。

尝试
trim(preg\u replace(“/\s*[^\s\p{L}]/”,“”,$input))
trim(preg\u replace(“/\s*[\d\p{p}\p{s}]+/”,“”,$input))
。如果需要使用Unicode文本,请添加
u
修饰符。您希望得到什么结果?现在它展示了另一个解决方案:“随机字符串和随机输出:
trim(preg\u replace(“/\s*(?:(?!\s)[\W\d])+/”,“,$input))
另请参见。请告诉我这是否对您有效。@WiktorStribiżew非常感谢您的帮助。您的所有解决方案都有效:)
Random string with random and output