Remove new lines from string and replace with one empty space

PhpRegexString

Php Problem Overview


$string = "
put returns between paragraphs

for linebreak add 2 spaces at end

";

Want to remove all new lines from string.

I've this regex, it can catch all of them, the problem is I don't know with which function should I use it.

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

$string should become:

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

Php Solutions


Solution 1 - Php

You have to be cautious of double line breaks, which would cause double spaces. Use this really efficient regular expression:

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

Multiple spaces and newlines are replaced with a single space.

Edit: As others have pointed out, this solution has issues matching single newlines in between words. This is not present in the example, but one can easily see how that situation could occur. An alternative is to do the following:

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

Solution 2 - Php

A few comments on the accepted answer:

The + means "1 or more". I don't think you need to repeat \s. I think you can simply write '/\s+/'.

Also, if you want to remove whitespace first and last in the string, add trim.

With these modifications, the code would be:

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

Solution 3 - Php

Just use preg_replace()

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

You could get away with str_replace() on this one, although the code doesn't look as clean:

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

See it live on ideone

Solution 4 - Php

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

Solution 5 - Php

You should use str_replace for its speed and using double quotes with an array

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

Solution 6 - Php

I'm not sure if this has any value against the already submitted answers but I can just as well post it.

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

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

// Replace multiple spaces with one
$output = preg_replace('!\s+!', ' ', $string);

Solution 7 - Php

Escape sequence \R matches a generic newline

> that is, anything considered a linebreak sequence by Unicode. This includes all characters matched by \v (vertical whitespace), and the multi character sequence \x0D\x0A...

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

> In 8-bit non-UTF-8 mode \R is equivalent to the following: (?>\r\n|\n|\x0b|\f|\r|\x85)... pcre.org

Regex101 Demo

Solution 8 - Php

Line breaks in text are generally represented as:

\r\n - on a windows computer

\r - on an Apple computer

\n - on Linux

//Removes all 3 types of line breaks

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

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

Solution 9 - Php

PCRE regex replacements can be done using preg_replace: http://php.net/manual/en/function.preg-replace.php

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

Would replace new line or return characters with a space. If you don't want anything to replace them, change the 2nd argument to ''.

Solution 10 - Php

Use this:

replace series of newlines with an empty string:

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

or you probably want to replace newlines with a single space:

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

Solution 11 - Php

Whats about:

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

This should be a pretty robust solution because \n doesn't work correctly in all systems if i'm not wrong ...

Solution 12 - Php

I was surprised to see how little everyone knows about regex.

Strip newlines in php is

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

In perl

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

Meaning replace any newline character at the end of the line (for efficiency) - optionally preceded by a carriage return - with a space.

\n or \015 is newline. \r or \012 is carriage return. ? in regex means match 1 or zero of the previous character. $ in regex means match end of line.

The original and best regex reference is perldoc perlre, every coder should know this doc pretty well: http://perldoc.perl.org/perlre.html Note not all features are supported by all languages.

Solution 13 - Php

this is the pattern I would use

$string = preg_replace('@[\s]{2,}@',' ',$string);

Solution 14 - Php

Many of these solutions didn't work for me. This did the trick though:-

$svgxml = preg_replace("/(*BSR_ANYCRLF)\R/",'',$svgxml);

Here is the reference:- PCRE and New Lines

Solution 15 - Php

This one also removes tabs

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

Solution 16 - Php

You can try below code will preserve any white-space and new lines in your text.

$str = "
put returns between paragraphs

for linebreak add 2 spaces at end

";

echo preg_replace( "/\r|\n/", "", $str );

Solution 17 - Php

maybe this works:

$str='\n';
echo str_replace('\n','',$str);

Solution 18 - Php

You can remove new line and multiple white spaces.

$pattern = '~[\r\n\s?]+~';
$name="test1 /
                     test1";
$name = preg_replace( $pattern, "$1 $2",$name);

echo $name;

Solution 19 - Php

Very simple

$hello = "
A
B
C
";
str_replace("
", " ", $hello);
// A B C

Solution 20 - Php

this below code work all text please use it:

$des = str_replace('\n',' ',$des);
$des = str_replace('\r',' ',$des);

Solution 21 - Php

Using a combination of solutions mentioned above, this one line worked for me

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

It removes '\r' and '\n'.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJamesView Question on Stackoverflow
Solution 1 - PhpjwuellerView Answer on Stackoverflow
Solution 2 - PhpmatsolofView Answer on Stackoverflow
Solution 3 - PhpNullUserExceptionView Answer on Stackoverflow
Solution 4 - PhpfabrikView Answer on Stackoverflow
Solution 5 - PhpRobertPittView Answer on Stackoverflow
Solution 6 - PhpPeterView Answer on Stackoverflow
Solution 7 - PhpAntonView Answer on Stackoverflow
Solution 8 - PhpMd. Al Amin BhuiyanView Answer on Stackoverflow
Solution 9 - Phpn00dleView Answer on Stackoverflow
Solution 10 - PhpnetomView Answer on Stackoverflow
Solution 11 - PhpGDYView Answer on Stackoverflow
Solution 12 - PhpekernerView Answer on Stackoverflow
Solution 13 - PhpRajeevView Answer on Stackoverflow
Solution 14 - PhpAdam WhateversonView Answer on Stackoverflow
Solution 15 - Phpuser3213174View Answer on Stackoverflow
Solution 16 - PhpPCMShaperView Answer on Stackoverflow
Solution 17 - PhpزيادView Answer on Stackoverflow
Solution 18 - PhpRameshView Answer on Stackoverflow
Solution 19 - PhpMincoView Answer on Stackoverflow
Solution 20 - Phpuser8031209View Answer on Stackoverflow
Solution 21 - PhpKashifView Answer on Stackoverflow