2014-06-20 6 views
0

Salut im essayant d'écrire une classe de validation en utilisant: regexp-me lib en raison de la réponse de ce post.Comment utiliser quantificateur regex motif sur blackberry ({m, n})

Qu'est-ce que je fais

String id = "123456789"; 

String pattern = "\\d{7,8}"; 

public boolean validate(String id,String pattern){ 


    RE regular_expresion = new RE("\\d{7,8}"); 

    return regular_expresion.match(id); 
} 

Ce code doit être retourné faux avec cette « id » puisque le motif juste doit accepter 7 à 8 chiffres. Cependant, si j'utilise id = "1234567", il renvoie true, le code accepte 7 chiffres ou plus.

Le {m, n} fonctionne comme un {n,}.

Est-ce que quelqu'un a déjà eu ce problème?

Répondre

2

L'expression \\d{7,8} moyens:

  • trouver nulle part dans la chaîne
  • une chaîne composée uniquement de chiffres
  • avec au moins 7, mais pas plus de 8 caractères.

Cela est vrai pour 1234567 car cela est une chaîne de 7 chiffres, ainsi que pour 123456789 parce qu'également cette chaîne contient une chaîne avec 7 ou 8 chiffres.

Modifier l'expression à ^\\d{7,8}$ pour obtenir un résultat positif que lorsque la chaîne entière du début à la fin se compose uniquement des chiffres et la longueur de chaîne est 7 ou 8.

+0

Wow donc le retour de la méthode vraie même si elle a une sous-chaîne avec ce motif. Mon mauvais merci Mofi. – AmirG