Posez votre question Signaler

[Java] Regex

viot - Dernière réponse le 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.
Lire la suite 

[Java] Regex »

1 réponses
Réponse
+0
moins plus
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.

@+
Ajouter un commentaire
Ce document intitulé « [Java] Regex » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook