Remove new lines from string and replace with one empty space
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));
How to remove spaces and newlines in a string
You can remove all whitespaces with this regex
content = Regex.Replace(content, @"\s+", string.Empty);
what are whitespace characters from MSDN.
Btw you are mistaking Trim
with removing spaces, in fact it's only removing spaces at the begining and at the end of string. If you want to replace all spaces and carige returns use my regex.
How to replace multiple spaces and newlines with one blank line
The one-line solution to remove multiple spaces/newlines, but preserve at least one blank line from multiple blank lines:
str = str.replaceAll("(?m)(^ *| +(?= |$))", "").replaceAll("(?m)^$([\r\n]+?)(^$[\r\n]+?^)+", "$1");
Each individual line is trimmed too.
Here's some test code:
String str = " This is\r\n " +
"\r\n" +
" \r\n " +
" \r \n \n " +
"\r\n" +
" a string. ";
str = str.trim().replaceAll("(?m)(^ *| +(?= |$))", "").replaceAll("(?m)^$([\r\n]+?)(^$[\r\n]+?^)+", "$1");
System.out.println(str);
Output:
This is
a string.
Remove all whitespaces from String but keep ONE newline
In a single regex (plus a small patch for tabs):
input.replaceAll("^\\s+|\\s+$|\\s*(\n)\\s*|(\\s)\\s*", "$1$2")
.replace("\t"," ");
The regex looks daunting, but in fact decomposes nicely into these parts that are OR-ed together:
^\s+
– match whitespace at the beginning;\s+$
– match whitespace at the end;\s*(\n)\s*
– match whitespace containing a newline, and capture that newline;(\s)\s*
– match whitespace, capturing the first whitespace character.
The result will be a match with two capture groups, but only one of the groups may be non-empty at a time. This allows me to replace the match with "$1$2"
, which means "concatenate the two capture groups."
The only remaining problem is that I can't replace a tab with a space using this approach, so I fix that up with a simple non-regex character replacement.
Remove all line breaks from a long string of text
How do you enter line breaks with raw_input
? But, once you have a string with some characters in it you want to get rid of, just replace
them.
>>> mystr = raw_input('please enter string: ')
please enter string: hello world, how do i enter line breaks?
>>> # pressing enter didn't work...
...
>>> mystr
'hello world, how do i enter line breaks?'
>>> mystr.replace(' ', '')
'helloworld,howdoienterlinebreaks?'
>>>
In the example above, I replaced all spaces. The string '\n'
represents newlines. And \r
represents carriage returns (if you're on windows, you might be getting these and a second replace
will handle them for you!).
basically:
# you probably want to use a space ' ' to replace `\n`
mystring = mystring.replace('\n', ' ').replace('\r', '')
Note also, that it is a bad idea to call your variable string
, as this shadows the module string
. Another name I'd avoid but would love to use sometimes: file
. For the same reason.
How to remove all line breaks from a string
Line breaks (better: newlines) can be one of Carriage Return (CR, \r
, on older Macs), Line Feed (LF, \n
, on Unices incl. Linux) or CR followed by LF (\r\n
, on WinDOS). (Contrary to another answer, this has nothing to do with character encoding.)
Therefore, the most efficient RegExp
literal to match all variants is
/\r?\n|\r/
If you want to match all newlines in a string, use a global match,
/\r?\n|\r/g
respectively. Then proceed with the replace
method as suggested in several other answers. (Probably you do not want to remove the newlines, but replace them with other whitespace, for example the space character, so that words remain intact.)
Related Topics
Are PHP Variables Passed by Value or by Reference
Max Size of Url Parameters in _Get
How to Upload Images into MySQL Database Using PHP Code
PHP Error: Fatal Error: Constant Expression Contains Invalid Operations
Create Word Document Using PHP in Linux
How Do PHP Sessions Work? (Not "How Are They Used")
Insert/Update Helper Function Using Pdo
Codeigniter: How to Connect to Your Database Server Using the Provided Settings Error Message
Fastest Way to Check If a String Is Json in PHP
PHP/MySQL Insert Row Then Get 'Id'
Correct Way to Use Like '%{$Var}%' With Prepared Statements
Warning: MySQLi_Select_Db() Expects Exactly 2 Parameters, 1 Given
PHP 5.4 Call-time pass-by-reference - Easy Fix Available
Http Authentication Logout Via PHP