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 et nom de fichier


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 et nom de fichier
    Bonjour

    Je suis entrain d'ecrire une expressions reguliere en JAVA qui permet de vérifier si le nom de fichier suit ce format : testV3_YYYYMMDDHHMM.TXT.

    Pour ce la j'ai mis ça comme expression reguliere :

    testV3_([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|30|31)(0[1-9]|1[0-9]|2[0-4])([0-5][0-9])([0-5][0-9]).TXT"

    Mais je ne vois pas la faute elle est ou ?? parce que jexcute mon programme ça me dit il n' y a aucun fichier qui corrrespond à ce nom alors qu'il y est ...


    Merci beaucoup d'avance

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Hô la belle expression régulière complètement illisible !!!


    Découpes ton expression et commentes chaque partie ! Tu verras que tu as mis l'année sur 2 chiffres seulement et que tu as mis deux fois les minutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String regexp = "testV3_"
    	+ "([0-9]{4})"			// YYYY
    	+ "(0[1-9]|1[0-2])"		// MM
    	+ "(0[1-9]|[1-2][0-9]|30|31)"	// DD
    	+ "(0[1-9]|1[0-9]|2[0-4])"	// HH
    	+ "([0-5][0-9])"		// MM
    	+ ".TXT";

    a++

  3. #3
    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 pour ta réponse....

    en fait pour la date c bon ça marche

    par contre pour les chaine de caractere je veux une expression reguliere qui me dit que ma chiane commence par testV3_" (ici y a n'importe quel caractere)+date

    J'ai mis "testV3_"+*+ + "([0-9]{4})" ... mais ça n'a pas marché

    comment je peux mettre n'importe quel caractere au milieu d'une expresion reguliere

    Merci beaucoup d'avance

    ça m'aidera vraiment

  4. #4
    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
    J'ai trouvé la solutioon il fallait rajouter .* et pas * tout court

  5. #5
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Par défaut
    et as tu compris pourquoi ? car la est l'essentiel...

    " * " est juste un quantificateur signifiant "de 0 à une infinité", et se refère à l'élément précédent. par exemple :

    Signifie de 0 à une infinité de chiffres compris entre 0 et 9

    " . " quant à lui représente n'importe quel caractère... cela peu être un chiffre, une lettre... Si tu veux donc dire "tout et n'importe quoi", il te faut écrire :

    Ce qui signifie "n'importe quoi répété de 0 à une infinité de fois

    L'essentiel est de comprendre le mécanisme des expressions régulière, car de premier abord ca parait compliqué, mais si l'on s'y plonge ne serait-ce qu'une petite demi heure, ca devient limpide....

Discussions similaires

  1. Expression régulière et nom de fichier
    Par sheep_one dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 24/01/2015, 12h52
  2. Réponses: 2
    Dernier message: 30/04/2014, 17h23
  3. Expressions Régulières et nom de fichiers
    Par Worm00 dans le forum SL & STL
    Réponses: 1
    Dernier message: 05/10/2012, 12h25
  4. Réponses: 11
    Dernier message: 26/03/2012, 16h34
  5. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21

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