Replace new line/return with space using regex

java, regex

Solution

`\s` is a shortcut for whitespace characters in regex. It has no meaning in a string. ==> You can't use it in your replacement string. There you need to put exactly the character(s) that you want to insert. If this is a space just use `" "` as replacement.

The other thing is: Why do you use 3 backslashes as escape sequence? Two are enough in Java. And you don't need a `|` (alternation operator) in a character class.

L.replaceAll("[\\t\\n\\r]+"," ");

Remark

`L` is not changed. If you want to have a result you need to do

String result =     L.replaceAll("[\\t\\n\\r]+"," ");

Test code:

String in = "This is my text.\n\nAnd here is a new line";
System.out.println(in);

String out = in.replaceAll("[\\t\\n\\r]+"," ");
System.out.println(out);

Problem

Pretty basic question for someone who knows. Instead of getting from ``` "This is my text. And here is a new line" ``` To: ``` "This is my text. And here is a new line" ``` I get: ``` "This is my text.And here is a new line. ``` Any idea why? ``` L.replaceAll("[\\\t|\\\n|\\\r]","\\\s"); ``` I think I found the culprit. On the next line I do the following: ``` L.replaceAll( "[^a-zA-Z0-9|^!|^?|^.|^\\s]", ""); ``` And this seems to be causing my issue. Any idea why? I am obviously trying to do the following: remove all non-chars, and remove all new lines.

Original source

Related problems