I’m trying to write a regular expression in Java which removes all non-alphanumeric characters from a paragraph, except the spaces between the words.
This is the code I’ve written:
paragraphInformation = paragraphInformation.replaceAll("[^a-zA-Z0-9\s]", "");
However, the compiler gave me an error message pointing to the s saying it’s an illegal escape character. The program compiled OK before I added the \s to the end of the regular expression, but the problem with that was that the spaces between words in the paragraph were stripped out.
How can I fix this error?
You need to double-escape the
\character:"[^a-zA-Z0-9\\s]"Java will interpret
\sas a Java String escape character, which is indeed an invalid Java escape. By writing\\, you escape the\character, essentially sending a single\character to the regex. This\then becomes part of the regex escape character\s.