Remplacer tous les caractères non alphanumériques par des chaînes vides

J’ai essayé d’utiliser ceci mais je n’ai pas travaillé –

return value.replaceAll("/[^A-Za-z0-9 ]/", ""); 

    Utilisez [^A-Za-z0-9] .

    Remarque: a supprimé l’espace car il n’est généralement pas considéré comme alphanumérique.

    Essayer

     return value.replaceAll("[^A-Za-z0-9]", ""); 

    ou

     return value.replaceAll("[\\W]|_", ""); 
     return value.replaceAll("[^A-Za-z0-9 ]", ""); 

    Cela laissera des espaces intacts. Je suppose que c’est ce que vous voulez. Sinon, supprimez l’espace du regex.

    Vous devez être conscient que [^a-zA-Z] remplacera les caractères qui ne sont pas eux-mêmes dans la plage de caractères AZ / az. Cela signifie que des caractères spéciaux tels que é , ß etc. ou des caractères cyrilliques seront supprimés.

    Si le remplacement de ces caractères n’est pas souhaité, utilisez plutôt des classes de caractères prédéfinies:

      someSsortingng.replaceAll("[^\\p{IsAlphabetic}^\\p{IsDigit}]", ""); 

    PS: \p{Alnum} n’atteint pas cet effet, il agit de la même manière que [A-Za-z0-9] .

    Vous pourriez aussi essayer cette regex plus simple:

      str = str.replaceAll("\\P{Alnum}", ""); 

    Les expressions régulières de Java n’exigent pas que vous placiez une barre oblique ( / ) ou tout autre délimiteur autour de l’expression rationnelle, contrairement à d’autres langages comme Perl, par exemple.

    J’ai fait cette méthode pour créer des noms de fichiers:

     public static Ssortingng safeChar(Ssortingng input) { char[] allowed = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_".toCharArray(); char[] charArray = input.toSsortingng().toCharArray(); SsortingngBuilder result = new SsortingngBuilder(); for (char c : charArray) { for (char a : allowed) { if(c==a) result.append(a); } } return result.toSsortingng(); } 

    Méthode simple:

     public boolean isBlank(Ssortingng value) { return (value == null || value.equals("") || value.equals("null") || value.sortingm().equals("")); } public Ssortingng normalizeOnlyLettersNumbers(Ssortingng str) { if (!isBlank(str)) { return str.replaceAll("[^\\p{L}\\p{Nd}]+", ""); } else { return ""; } } 
     public static void main(Ssortingng[] args) { Ssortingng value = " Chlamydia_spp. IgG, IgM & IgA Abs (8006) "; System.out.println(value.replaceAll("[^A-Za-z0-9]", "")); } 

    sortie: ChlamydiasppIgGIgMIgAAbs8006

    Github: https://github.com/AlbinViju/Learning/blob/master/SsortingpNonAlphaNumericFromSsortingng.java

    Si vous souhaitez également autoriser les caractères alphanumériques qui n’appartiennent pas au jeu de caractères ascii, comme par exemple les trémas allemands, vous pouvez envisager d’utiliser la solution suivante:

      Ssortingng value = "your value"; // this could be placed as a static final constant, so the compiling is only done once Pattern pattern = Pattern.comstack("[^\\w]", Pattern.UNICODE_CHARACTER_CLASS); value = pattern.matcher(value).replaceAll(""); 

    Veuillez noter que l’utilisation de l’indicateur UNICODE_CHARACTER_CLASS pourrait entraîner une pénalité de performance (voir javadoc de cet indicateur).