Я пытаюсь заменить все последовательные пробелы только одним подчеркиванием; Я могу легко заменить одно пространство на «_», используя следующую строку кода:
str_replace(" ", "_",$name);
Evan Я могу заменить одно пробел на «_» следующей строкой кода:
str_replace(" ", "_",$name);
Но проблема в том, что я не знаю, сколько пробелов я должен проверить!
Если мой вопрос непонятен, сообщите мне, какая часть вам нужна для уточнения.
благодаря
Возможно, самое чистое и удобное для чтения решение:
preg_replace('/[[:space:]]+/', '_', $name);
Это заменит все пробелы (независимо от того, сколько) с одним подчеркиванием.
Вы можете сделать это с регулярным выражением:
[ ]+
Это будет соответствовать «одному или нескольким символам пробела»; если вы хотите «любые пробелы» (включая вкладки), вы можете вместо этого использовать \s+
.
Используя это с PHP preg_replace()
:
$name = preg_replace('/[ ]+/', '_', $name);
Используйте preg_replace()
:
$name = preg_replace('/ +/', '_', $name);
+
в регулярном выражении означает «повторяется 1 или более раз», следовательно, это будет соответствовать [SPACE]
а также [SPACE][SPACE][SPACE]
.
Вы можете использовать регулярные выражения:
$name = preg_replace("#\s+#", "_", $name);