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

Algorithmes et structures de données Discussion :

[expression régulière] mon cerveau fait des noeuds..


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 33
    Points : 21
    Points
    21
    Par défaut [résolu][expression régulière] mon cerveau fait des noeuds..
    Bonjour à tous,

    Je travaille en Java, et les expressions régulières sont un concept tout nouveau pour moi...



    Dans ce cas précis, je travaille sur un outil d'analyse de fichiers log, et je dois donc mettre en correspondance une expression régulère avec chaque ligne d'un fichier log. Le truc, c'est que dans ce cas précis, impossible de faire la correspondance ! ! !

    voila ma regExp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([a-zA-Z]{3}) ([a-zA-Z]{3}) ([0-9]{2}) ([0-9:]{8}) [A-Z]{4} ([0-9]{4})\t([A-Z]*) class (.*)\t(.*)$
    et une ligne de mon log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fri May 16 15:45:52 CEST 2003	INFO	class com.nawac.log2db.Main	Demarrage d'ANALOG
    Merci d'avance ! !
    I can change the world, with my own two hands...

  2. #2
    Membre habitué Avatar de ddams
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 148
    Points
    148
    Par défaut
    je ne sais pas comment ça marche en java. mais je sais qu'en perl il faut spécifier les espaces (\s).
    @+ddams

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 33
    Points : 21
    Points
    21
    Par défaut
    En principe, les espaces sont reconnus tels quel, ça marche pour d'autres regexp.
    I can change the world, with my own two hands...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    \t désigne les tabulations si je me rappelle bien ... il faudrait peut être vérifier si c'est bien une tabulation qui a été utilisée ...

    En java aussi les espaces sont codés par \s ...

  5. #5
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    L'erreur a lieu avant le class : tu as mis un espace dans ta regexp, alors que dans la chaine ca doit etre une tabulation.
    Pour eviter ce genre de probleme, tu dois surement avoir l'ensemble de caracteres blanc (\s pour perl). Donc pour chaque separation tu mets \s+ comme ca tu est tranquille (evidemment sauf si ton match peut contenir espace).

    Rq: je suis pas trop fan pour fixer les longueurs, surtout pour les nombres, notamment ici 16, si c'est plus petit genre 6, es-tu sur que ce sera 06 et non 6 tout seul ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 33
    Points : 21
    Points
    21
    Par défaut
    Avec des '\s' à la place des ' ', ça marche ! !
    Je ne sais vraiment pas pourquoi, j'ai déjà utilisé des espaces directement et j'avais pas U des problème, m'enfin ! Les voies du Seigneur sont impénétrables...
    I can change the world, with my own two hands...

  7. #7
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    Citation Envoyé par nawac
    Avec des '\s' à la place des ' ', ça marche ! !
    Je ne sais vraiment pas pourquoi
    Ca doit juste etre pour le "blanc" avant class qui est un tab (donc compris pas \s) et non un espace

  8. #8
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    juste une question comme ça, comment on utilise les regexp en java ???
    Membre éclairé, lol !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trouver une expression régulière pour les valeurs des noeuds XML
    Par Motin dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 05/10/2011, 17h51
  2. Réponses: 0
    Dernier message: 24/11/2009, 09h20
  3. Réponses: 1
    Dernier message: 04/09/2009, 12h37
  4. mon ActionPerformed fait des siennes
    Par azer2k20 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 09/01/2007, 23h26
  5. Réponses: 7
    Dernier message: 27/10/2005, 19h23

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