2

我试图用一个下划线替换所有连续的空格;通过使用以下代码行,我可以轻松地将一个空格替换为“_”:

str_replace(" ", "_",$name);

Evan 我可以通过以下代码行将一个空格替换为“_”:

str_replace("  ", "_",$name);

但问题是我不知道要检查多少个空格!

如果我的问题不清楚,请告诉我您需要更多澄清的部分。

谢谢

4

4 回答 4

6

可能是最干净和最易读的解决方案:

preg_replace('/[[:space:]]+/', '_', $name);

这将用一个下划线替换所有空格(无论有多少)。

于 2013-10-22T13:29:05.390 回答
3

您可以使用正则表达式完成此操作:

[ ]+

这将匹配“一个或多个空格字符”;如果您想要“任何空格”(包括制表符),您可以改用\s+.

将其与 PHP 一起使用preg_replace()

$name = preg_replace('/[ ]+/', '_', $name);
于 2013-10-22T13:29:31.773 回答
2

使用preg_replace()

$name = preg_replace('/ +/', '_', $name);

+在正则表达式中表示“重复 1 次或多次”,因此这将[SPACE][SPACE][SPACE][SPACE].

于 2013-10-22T13:29:09.753 回答
0

您可以使用正则表达式:

$name = preg_replace("#\s+#", "_", $name);
于 2013-10-22T13:29:12.690 回答