如何在PHP中从字符串中删除所有非字母数字和非空格字符?

如何在PHP中从字符串中删除所有非字母数字和非空格字符?,php,Php,我想从字符串中删除所有非字母数字和空格字符。所以我真的想留下一些空间。在[]括号内的以下函数中,我应该为空格添加什么内容: ereg_replace("[^A-Za-z0-9]", "", $title); 换句话说,什么符号代表空格,我知道\n代表新行,单个空格是否有这样的符号。只需在字符类中放入一个普通空格: [^A-Za-z0-9 ] 对于其他空白字符(制表符、换行符等),请改用\s 您还应该知道,已弃用,将在PHP6中删除,以支持。因此,我建议您改用: 如果您只需要一个文本空间,请在

我想从字符串中删除所有非字母数字和空格字符。所以我真的想留下一些空间。在[]括号内的以下函数中,我应该为空格添加什么内容:

ereg_replace("[^A-Za-z0-9]", "", $title);

换句话说,什么符号代表空格,我知道\n代表新行,单个空格是否有这样的符号。

只需在字符类中放入一个普通空格:

[^A-Za-z0-9 ]
对于其他空白字符(制表符、换行符等),请改用
\s

您还应该知道,已弃用,将在PHP6中删除,以支持。因此,我建议您改用:


如果您只需要一个文本空间,请在其中添加一个。制表符和换行符等“空白字符”的组为\s

接受的答案不会删除空格

考虑以下几点

$string = 'tD  13827$2099';
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string);

echo $string;

> tD  138272099
现在,如果我们用str_替换空格,就会得到所需的输出

$string = 'tD  13827$2099';
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string);

// remove the spaces
$string = str_replace(" ", "", $string);

echo $string;

> tD138272099

这是真的。我一定错过了什么,因为有一个公认的答案。我使用的是
preg\u replace('/[\s\W]+/'
,它就像一个符咒,去掉了非字母数字和空格。我知道这很旧,但作者不想删除空格。“如何在PHP中删除字符串中的所有非字母数字和非空格字符?”“我应该在[]括号内的下面函数中为空格添加什么内容?”最值得注意的是:“所以我确实希望保留空格”。正文的第一行中只缺少一个“non”。我的评论只是说发布一个适当示例的道具。上面的绿色复选答案在技术上是不正确的。它应该是:$title=preg_replace(“/[^a-Za-z0-9]/”,“,$title),而不仅仅是:preg_replace(/[^a-Za-z0-9]/“,”,$title)说明该方法不会替换该变量。
$string = 'tD  13827$2099';
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string);

// remove the spaces
$string = str_replace(" ", "", $string);

echo $string;

> tD138272099