我试图用一个下划线替换所有连续的空格;我可以轻松地用" _"替换一个空格。使用以下代码行:
str_replace(" ", "_",$name);
Evan我可以用" _"替换一个空格按照以下代码行:
str_replace(" ", "_",$name);
但问题是我不知道有多少空格我要检查!
如果我的问题不明确,请告诉我您需要进一步澄清的部分。
由于
答案 0 :(得分:6)
可能是最干净,最易读的解决方案:
preg_replace('/[[:space:]]+/', '_', $name);
这将用一个下划线替换所有空格(无论多少)。
答案 1 :(得分:3)
您可以使用正则表达式完成此操作:
[ ]+
这将匹配“一个或多个空格字符”;如果你想要“任何空格”(包括标签),你可以使用\s+
。
使用PHP的preg_replace()
:
$name = preg_replace('/[ ]+/', '_', $name);
答案 2 :(得分:2)
$name = preg_replace('/ +/', '_', $name);
正则表达式中的 +
表示“重复1次或更多次”,因此这将匹配[SPACE]
以及[SPACE][SPACE][SPACE]
。
答案 3 :(得分:0)
您可以使用正则表达式:
$name = preg_replace("#\s+#", "_", $name);