[Java] Regex

Fermé
viot - 6 févr. 2008 à 22:08
 FranckM - 2 sept. 2008 à 20:04
Bonjour,

J'ai un problème avec une expression régulière : j'ai le code suivant :

Pattern operator = Pattern.compile("[+-\*/r]");

Je voudrais trouver les + ou les - ou les * ou les / ou le charactère 'r'.

Merci de votre aide.
A voir également:

1 réponse

Attention, il faut savoir qu'en JAVA tu as également des métacaractères tel que +.
Dans ces cas là il faut penser à les échapper afin de les traiter comme de simples caractères.

NB: Petit subtilité pour JAVA, il faut échapper deux fois avec le " \" car le "\" à lui tout seul sert pour des classes prédéfinies telles que "\d", "\w", etc..

Donc pour apporter une solution à ton pattern, la réponse est :

Pattern operator = Pattern.compile("[\\+-\\*/r]+?");

// le "+?" signifie 1 ou plusieurs fois. Cette écriture apporte plus de souplesse.

Voilà, logiquement ça devrait marcher.

PS: Désolé pour la réponse tardive, en ce moment j'surf un peu au sujet des regex et je suis tombé sur ce post à tout hasard. J'espère qu'il servira à d'autres.

@+
0