How to remove special characters in the string except "- _". Now I use:
replaceAll("[^\\w\\s]", "")
it remove all special character but i want to keep "- _" . Can anyone tell me how should I do?
How to remove special characters in the string except "- _". Now I use:
replaceAll("[^\\w\\s]", "")
it remove all special character but i want to keep "- _" . Can anyone tell me how should I do?
Use
replaceAll("[^\\w\\s\\-_]", "");
What I did was add the underscore and hyphen to the regular expression. I added a
\\
before the hyphen because it also serves for specifying ranges:a-z
means all letters between a and z. Escaping it with\\
makes sure it is treated as an hyphen.Use this
replaceAll("[\\w\\s\\-\\_\\<.*?>]", "")
;It will replace the special character and white spaces from a given string.
Output will be:
owlabc_-
This might help:
replaceAll("[^a-zA-Z0-9_-]", "");
I suspect that you need to assign the result (in case you're not doing that), because
replaceAll()
returns a new string, rather than updating the string (String is immutable):Also note that the regex is quite simple:
No need to escape the dash
-
in the character class: When used as a literal in a character class, it must be either first or last (otherwise it indicates a range, likea-z
etc).No need to mention the underscore at all, because it is already listed:
\w
includes the underscore character!Consider this