Je suis totalement débutant en Java.JAVA équivalent à Javascript REGEX
En javascript j'ai ce regex:
/[^0-9.,\-\ ]/gi
Comment puis-je faire la même chose en java?
Je suis totalement débutant en Java.JAVA équivalent à Javascript REGEX
En javascript j'ai ce regex:
/[^0-9.,\-\ ]/gi
Comment puis-je faire la même chose en java?
Jetez un oeil à ceci: http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html Theres beaucoup que vous pouvez faire en Java avec Regex
Si vous voulez faire correspondre à plusieurs reprises contre cette regex, vous feriez:
Pattern p = Pattern.compile("(?i)[^0-9.,-\ ]");
Matcher m = p.matcher(targetString);
Ensuite, utilisez les méthodes de matcher dans une boucle pour obtenir la correspondance que vous voulez. Le "i" est un indicateur d'insensibilité à la casse (dont vous n'avez pas besoin car aucun caractère n'est spécifié), mais je ne suis pas sûr de l'équivalent du drapeau "g". Je pense que c'est simplement pour essayer de appliquez le motif plusieurs fois à la chaîne cible plutôt que d'essayer de faire correspondre la chaîne entière, ce que fait le code ci-dessus.
En outre, le motif ci-dessus ne correspondra qu'à un caractère à la fois, vous pouvez en fait vouloir [^0-9.,-\ ]*
, qui correspondra à 0 caractères ou plus, avidement. Je voudrais lire les documents sur la classe Pattern si j'étais vous.
L'utilisation de la méthode 'find' dans une boucle while est l'équivalent de l'indicateur'/g' pour la correspondance progressive. – tchrist
Vous ne pouvez pas dire "virgule dans l'espace" comme vous l'avez fait. Échappez au personnage d'HYPHEN-MOINS. – tchrist
Cela fonctionnera également si vous placez le trait d'union non échappé comme le dernier ou le premier caractère de la classe de caractères. Pas besoin d'échapper au personnage de l'espace! – Eric