IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Expression réguliere : toute type d'extention sauf ".gz"


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 100
    Par défaut Expression réguliere : toute type d'extention sauf ".gz"
    Bonjour

    Je chercher une expression reguliere (regex) qui prend les nom de fichiers qui comment par "test_" et qui ne se terminent jamais par ".gz".

    Avez vous une idéeee SVP

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Tu pourrais utiliser la méthode de la classe String.

    Petit exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(filename.endsWith(".gz")==false){
    //ton traitement
    }

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    un truc dans ce goût là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		String[] names = {"test_1.gz",
    				"test_.gz",
    				"test_1.zip",
    				"test_2.x",
    				"test_",
    				"test3.zip"};
    		String regex = "test_.*"+ // test_.....
    		           "(?!\\.gz)"+   // pas extension .gz
    		           "\\..+";       // présence d'une extension
    		for (String name:names)
    			System.out.printf("%15s matches %s? %b\n" , name,regex,name.matches(regex));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          test_1.gz matches test_.*(?!\.gz)\..+? false
           test_.gz matches test_.*(?!\.gz)\..+? false
         test_1.zip matches test_.*(?!\.gz)\..+? true
           test_2.x matches test_.*(?!\.gz)\..+? true
              test_ matches test_.*(?!\.gz)\..+? false
          test3.zip matches test_.*(?!\.gz)\..+? false

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    un truc dans ce goût là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		String[] names = {"test_1.gz",
    				"test_.gz",
    				"test_1.zip",
    				"test_2.x",
    				"test_",
    				"test3.zip"};
    		String regex = "test_.*"+ // test_.....
    		           "(?!\\.gz)"+   // pas extension .gz
    		           "\\..+";       // présence d'une extension
    		for (String name:names)
    			System.out.printf("%15s matches %s? %b\n" , name,regex,name.matches(regex));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          test_1.gz matches test_.*(?!\.gz)\..+? false
           test_.gz matches test_.*(?!\.gz)\..+? false
         test_1.zip matches test_.*(?!\.gz)\..+? true
           test_2.x matches test_.*(?!\.gz)\..+? true
              test_ matches test_.*(?!\.gz)\..+? false
          test3.zip matches test_.*(?!\.gz)\..+? false
    Est ce qu'il y a un avantage particulier (mise à par la flexibilité et le nombre de choix) d'utiliser les expression régulière?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    String[] names = {"test_1.gz",
                          "test_.gz",
                          "test_1.zip",
                          "test_2.x",
                          "test_",
                          "test3.zip"};
    for (String name:names)
       if(name.endsWith(".gz")==false)
        System.out.println(name);
    Je trouve cela plus facile à comprendre que les expréssions régulière

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    tout à fait d'accord (bien qu'il faille dans le cas présent aussi ajouter le startWith("test_") ). La demnande était une expresion régulière, il a eu un expression régulière

    L'expression régulière n'est utile que si les critères sont multiple (évite de lire 50 fois la chaine) ou si il faut récupérer certaines sections de la chaine (via les parenthèses).

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Ok merci de ta réponse

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 100
    Par défaut Re
    Merci beaucoup pour toutes vos réponses

    C'est trés gentil de vos part

    Bonne matinée

Discussions similaires

  1. Expression régulière : tout sauf 'Cocon'
    Par Fointard dans le forum MATLAB
    Réponses: 4
    Dernier message: 06/06/2012, 17h34
  2. [RegEx] Remplacer toutes les balises HTML sauf un certain type
    Par nicolas2603 dans le forum Langage
    Réponses: 4
    Dernier message: 22/09/2011, 10h06
  3. Pb d'expression régulière : tout sauf une certaine extension
    Par supertom dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 10/07/2008, 12h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo