Search code examples
javaregexreplaceall

How can I remove specific special characters in java?


I'm beginner in Java and it's still very complicated to understand how a regex works. I don't know how to create a regex to check and remove some specific special characters from a string.

"!@#$%¨&*()_-+={[}]º|\,.:;?/° (I need check and remove it from a String)

Thanks in advance


Solution

  • You may use a regex to remove all punctuation (\p{P}) and symbols (\p{S}) and the º symbol:

    String result = s.replaceAll("[\\p{S}\\p{P}º]+", "");
    

    or use \p{Punct} (One of !"#$%&'()*+,-./:;<=>?@[\]^_{|}~`)

    String result = s.replaceAll("[\\p{Punct}º]+", "");
    

    See a Java demo:

    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    class Ideone
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            String answer = "Lore!m ips@um dol$or si%t amet, co¨nsectetur adi&piscing el*it. Mo(rbi pla)cerat, tu_rpis s_it am+et acc=umsan ve{nenatis, ma[gna r}isus ulla]mcorper an|te, ne\\c por,ttitor lac.us n:unc se;d el?it. Nul/la tristi°que posºuere felis, in ullamcorper sapien dignissim sit amet.";
            System.out.println(check(answer));
        }
        private static String check(String answer) {
            return answer.replaceAll("[\\p{S}\\p{P}º]+", "");
        }
    }
    

    Output:

    Lorem ipsum dolor sit amet consectetur adipiscing elit Morbi placerat turpis sit amet accumsan venenatis magna risus ullamcorper ante nec porttitor lacus nunc sed elit Nulla tristique posuere felis in ullamcorper sapien dignissim sit amet