21 de set de 2010 15:34 do James

Remova novas linhas da cadeia e substitua por um espaço vazio

$string = "
put returns between paragraphs

for linebreak add 2 spaces at end

";

Deseja remover todas as novas linhas da string.

Eu tenho esse regex, ele pode pegar todos eles, o problema é que eu não sei com qual função devo usá-lo.

/\r\n|\r|\n/

$string Deve se tornar:

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";

questionAnswers (0)

21 de set de 2010 13:39 do RobertPitt

uma matriz

str_replace(array("\r\n","\r"),"",$string);
21 de set de 2010 13:36 do 66.3k

Apenas usepreg_replace()

$string = preg_replace('~[\r\n]+~', '', $string);

Você poderia se safarstr_replace() neste, embora o código não pareça tão limpo:

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

Veja ao vivoideona

21 de set de 2010 13:36 do 10.4k
$string = str_replace(array("\n", "\r"), ' ', $string);
22 de abr de 2017 15:26 do 493

talvez isso funcione:

$str='\n';
echo str_replace('\n','',$str);
14 de mai de 2015 02:23 do user3213174

Este também remove guias

$string = preg_replace('~[\r\n\t]+~', '', $text);
02 de ago de 2018 12:08 do 42

\ r \ n - em um computador Windows

\ r - em um computador Apple

\ n - no Linux

//Removes all 3 types of line breaks

$string = str_replace("\r", "", $string);

$string = str_replace("\n", "", $string);
22 de set de 2010 15:20 do 2,097

o+ significa "1 ou mais". Eu não acho que você precisa repetir\s. Eu acho que você pode simplesmente escrever'/\s+/'.

Além disso, se você deseja remover os espaços em branco primeiro e último na cadeia, adicionetrim.

Com essas modificações, o código seria:

$string = preg_replace('/\s+/', ' ', trim($string));
19 de nov de 2015 13:48 do Peter

nviadas, mas posso postá-lo.

// Create an array with the values you want to replace
$searches = array("\r", "\n", "\r\n");

// Replace the line breaks with a space
str_replace($searches, "", $string);

// Replace multiple spaces with one
$output = preg_replace('!\s+!', ' ', $string);
21 de set de 2010 13:37 do 2,347

substitua séries de novas linhas por uma sequência vazia:

$string = preg_replace("/[\\n\\r]+/", "", $string);

ou você provavelmente deseja substituir novas linhas por um único espaço:

$string = preg_replace("/[\\n\\r]+/", " ", $string);
08 de jun de 2016 11:45 do GDY

Sobre o quê:

$string = trim( str_replace( PHP_EOL, ' ', $string ) );

Esta deve ser uma solução bastante robusta, porque \ n não funciona corretamente em todos os sistemas se não estiver errado ...

21 de set de 2010 13:37 do 4,372

http://php.net/manual/en/function.preg-replace.php

$new_string = preg_replace("/\r\n|\r|\n/", ' ', $old_string);

Substituiria nova linha ou retornaria caracteres por um espaço. Se você não deseja que nada os substitua, altere o segundo argumento para''.

22 de set de 2010 07:10 do Rajeev

este é o padrão que eu usaria

$string = preg_replace('@[\s]{2,}@',' ',$string);
15 de jun de 2018 07:26 do 34

$des = str_replace('\n',' ',$des);
$des = str_replace('\r',' ',$des);
09 de nov de 2016 11:00 do PCMShaper

e novas linhas no seu texto.

$str = "
put returns between paragraphs

for linebreak add 2 spaces at end

";

echo preg_replace( "/\r|\n/", "", $str );
10 de fev de 2017 13:54 do ekerner

As novas linhas de tira em php são

$str = preg_replace('/\r?\n$/', ' ', $str);

Em perl

$str =~ s/\r?\n$/ /g;

O significado substitui qualquer caractere de nova linha no final da linha (por eficiência) - opcionalmente precedido por um retorno de carro - por um espaço.

\ n ou \ 015 é nova linha. \ r ou \ 012 é retorno de carro. ? em regex significa corresponder 1 ou zero do caractere anterior. $ em regex significa que corresponde ao final da linha.

A referência original e melhor do regex é perldoc perlre, todo codificador deve conhecer este documento muito bem:http://perldoc.perl.org/perlre.html Observe que nem todos os recursos são suportados por todos os idiomas.

16 de nov de 2014 12:39 do 79

Sequência de fuga\R corresponde a uma nova linha genérica

isto é, qualquer coisa considerada umsequência de quebra de linha por Unicode. Isso inclui todos os caracteres correspondentes a\v (espaço em branco vertical) e a sequência de vários caracteres\x0D\x0A...

$string = preg_replace('/\R+/', " ", $string);

No modo não UTF-8 de 8 bits\R é equivalente ao seguinte:(?>\r\n|\n|\x0b|\f|\r|\x85)...pcre.org

Regex101 Demo

21 de set de 2010 13:36 do 25k

o que causaria espaços duplos. Use esta expressão regular realmente eficiente:

$string = trim(preg_replace('/\s\s+/', ' ', $string));

Vários espaços e novas linhas são substituídos por um único espaço.

Editar: Como outros já apontaram, esta solução apresenta problemas que correspondem a novas linhas únicas entre as palavras. Isso não está presente no exemplo, mas é possível ver facilmente como essa situação pode ocorrer. Uma alternativa é fazer o seguinte:

$string = trim(preg_replace('/\s+/', ' ', $string));

yourAnswerToTheQuestion