Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1521 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  problème expression regulière

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème expression regulière

n°1101502
thierry_b
Posté le 30-05-2005 à 12:09:21  profilanswer
 

Bonjour,
 
j'aimerais verifier si un argument est bien de la forme d'un nom de fichier suivi de l'extension rng.
 
J'ai donc fait cela:
 
 if (args[0].matches("[^-][^.]+\.rng" )) {
     System.out.println("good" );
 }
 else
     {
  System.out.println("mauvais" );
     }
 
Comme ca, je lui dis que mon motif, c'est quelque chose, dont le 1er caractère ne commence pas par un "-", qui contient n'importe quel caractère répété au moins une fois, sauf un point puis suivi de .rng, qui est l'extension.
 
Mais en compilant, j'ai ce message d'erreur:
 
thierry@thierry:~/Master/Dong/Gestion_Option$ javac Boubou.java
Boubou.java:4: illegal escape character
        if (args[0].matches("[^-][^.]+\.rng" )) {
                                       ^
1 error
 
Merci
A+
 

mood
Publicité
Posté le 30-05-2005 à 12:09:21  profilanswer
 

n°1101627
GaSPaRD77
Posté le 30-05-2005 à 14:07:11  profilanswer
 

normal .. Il faut echaper le -
[^\-]
 
Mais je suis pas sûr que ton expression verifie bien ce que tu souhaites...
Tu devrais plutôt faire un truc genre :

Code :
  1. ^[^\-](\w)+\.rng$

n°1101732
thierry_b
Posté le 30-05-2005 à 14:47:31  profilanswer
 

Je testerai :-)
 
Merci
A+

n°1101737
thierry_b
Posté le 30-05-2005 à 14:50:28  profilanswer
 

Euh, ca marche pas :-(
 
thierry@thierry:~/Master/Dong/Gestion_Option$ javac *.java
Gestion_Option.java:81: illegal escape character
        if (!(args[n-1].matches("^[^\-](\w)+\.rng$" ))) {
                                     ^
Gestion_Option.java:81: illegal escape character
        if (!(args[n-1].matches("^[^\-](\w)+\.rng$" ))) {
                                         ^
Gestion_Option.java:81: illegal escape character
        if (!(args[n-1].matches("^[^\-](\w)+\.rng$" ))) {
 
Merci
A+

n°1101935
Nicolas_75
Posté le 30-05-2005 à 17:02:12  profilanswer
 

Bonjour,
 
Je suis loin d'être spécialiste des expressions régulières, mais j'aurais tendance à faire la proposition suivante.
Si la commande est la suivante :
* 1er caractère différent de "-" : [^-]
* suivi de 1, ... caractère(s) différent(s) de "." : [^\\.]+
* suivi de ".rng" : \\.rng
 
Exemple :

Code :
  1. import java.util.regex.*;
  2. public class Regexp {
  3.    
  4.     Pattern p = Pattern.compile("[^-][^\\.]+\\.rng" );
  5.      
  6.     public void verifyRegexp(String fileName) {
  7.         Matcher m = p.matcher(fileName);
  8.         System.out.println(fileName+" -> "+m.matches());
  9.     }
  10.      
  11.     public static void main(String[] args) {
  12.         Regexp r = new Regexp();
  13.         r.verifyRegexp("a.rng" );
  14.         r.verifyRegexp("ab.rng" );
  15.         r.verifyRegexp("-a.rng" );
  16.         r.verifyRegexp("a-.b.rng" );
  17.         r.verifyRegexp("a-b-c.rng" );
  18.         r.verifyRegexp("abc.vb" );
  19.     } 
  20. }


Sortie :

a.rng -> false
ab.rng -> true
-a.rng -> false
a-.b.rng -> false
a-b-c.rng -> true
abc.vb -> false


Nicolas


Message édité par Nicolas_75 le 30-05-2005 à 17:05:44

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  problème expression regulière

 

Sujets relatifs
un problémeXindice problème avec commandes
[Expression reguliere] probleme de parsing de pseudo urlProbleme d'une simple expression reguliere [RESOLU]
Problème d'expression régulière[ PHP ] Problème d'expression régulière... ([0-9]{1,2}\.[0-9]{1,2})
Problème sur une expression régulièrePetit problème avec expression régulière...
Expression Reguliere ... Où est le problème ?Probleme d'expression reguliere
Plus de sujets relatifs à : problème expression regulière


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR