Вопрос по php, string – Замените несколько пробелов и символов новой строки только одним пробелом в PHP

11

У меня есть строка с несколькими символами новой строки.

Строка:

This is         a dummy text.               I need              




to                                      format
this.

Желаемый результат:

This is a dummy text. I need to format this.

Я использую это:

$replacer  = array("\r\n", "\n", "\r", "\t", "  ");
$string = str_replace($replacer, "", $string);

Но это не работает, как хотелось / требуется. Некоторые слова не имеют пробелов между ними.

На самом деле мне нужно преобразовать строку со всеми словами, разделенными пробелами.

Ваш Ответ

1   ответ
22

preg_replace:

# string(45) "This is a dummy text . I need to format this."
$str = preg_replace( "/\s+/", " ", $str );

Демо-версия:http://codepad.org/no6zs3oo

Вы, возможно, отметили в" . " часть первого примера. Пробелы, за которыми сразу следует пунктуация, вероятно, следует удалить полностью. Быстрая модификация позволяет это:

$patterns = array("/\s+/", "/\s([?.!])/");
$replacer = array(" ","$1");

# string(44) "This is a dummy text. I need to format this."
$str = preg_replace( $patterns, $replacer, $str );

Демо-версия:http://codepad.org/ZTX0CAGD

Ага. Понял. Еще раз спасибо! Один вопрос @JonathanSampson. Где я могу узнать это регулярное выражение в деталях? Sukanta Paul
Да, это работает! Благодарю. Sukanta Paul

Похожие вопросы