J'ai essayé d'utiliser ça mais je n'ai pas travaillé-
return value.replaceAll("/[^A-Za-z0-9 ]/", "");
java
regex
non-alphanumeric
Alex Gomes
la source
la source
Réponses:
Utilisez
[^A-Za-z0-9]
.Remarque: supprimé l'espace car cela n'est généralement pas considéré comme alphanumérique.
la source
Essayer
ou
la source
return value.replaceAll("\\W", "");
Vous devez savoir 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 des caractères spéciaux commeé
,ß
etc. ou les caractères cyrilliques et ceux-ci 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:
PS:
\p{Alnum}
n'atteint pas cet effet, il agit de la même manière que[A-Za-z0-9]
.la source
[^\\p{IsAlphabetic}\\p{IsDigit}]
fonctionne bien.{IsDigit}
ne fonctionne pas pour moi et{Digit}
c'est parce que j'essaye ceci sur Android. Et Android estUNICODE_CHARACTER_CLASS
activé par défaut. Merci pour le dégagement.Cela laissera les espaces intacts. Je suppose que c'est ce que tu veux. Sinon, supprimez l'espace de l'expression régulière.
la source
Vous pouvez également essayer cette expression rationnelle plus simple:
la source
str.replaceAll("[^\\p{Alnum}\\s]", "")
\\p{Alnum}\\p{Space}
.Les expressions régulières de Java ne vous obligent pas à mettre une barre oblique (
/
) ou tout autre délimiteur autour de l' expression régulière , contrairement à d'autres langages comme Perl, par exemple.la source
J'ai fait cette méthode pour créer des noms de fichiers:
la source
Solution:
value.replaceAll("[^A-Za-z0-9]", "")
Explication:
En regardant le mot-clé comme deux fonctions:
[(Pattern)] = match(Pattern)
[^(Pattern)] = notMatch(Pattern)
De plus concernant un motif:
A-Z = all characters included from A to Z
a-z = all characters included from a to z
0=9 = all characters included from 0 to 9
Par conséquent, il remplacera tous les caractères NON inclus dans le modèle
la source
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:
Veuillez noter que l'utilisation de l'indicateur UNICODE_CHARACTER_CLASS pourrait avoir une incidence sur la pénalité de performance (voir javadoc de cet indicateur)
la source
Méthode simple:
la source
sortie: ChlamydiasppIgGIgMIgAAbs8006
Github: https://github.com/AlbinViju/Learning/blob/master/StripNonAlphaNumericFromString.java
la source
En utilisant la goyave, vous pouvez facilement combiner différents types de critères. Pour votre solution spécifique, vous pouvez utiliser:
la source
CharMatcher de Guava fournit une solution concise:
la source