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

Langage Perl Discussion :

Expression régulière (chaîne de caractères quelconque)


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 90
    Points : 119
    Points
    119
    Par défaut Expression régulière (chaîne de caractères quelconque)
    Bonjour,

    Comment reconnaitre une ligne du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qdfsdf qsdqsd 877986 jlskdjs (h_45): ABC_1 zdfjfg t sddf (977s_): qdfjqdf jqdsk BCD_2 sdggdf6876 _(sdfl)
    En fait, reconnaitre une ligne de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <chaine de caractère quelconque> ABC_1 <chaine de caractère quelconque> BCD_2 <chaine de caractère quelconque>
    Voici mon idée qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($ligne = <FILE>) {
        if (($ligne =~ /ABC_1 [\w\s]* BCD_2/)) {
    	print FILE $ligne;
        }
    Merci d'avance pour toute aide.

  2. #2
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    bonjour,

    Le problème vient du fait que dans tes chaînes à caractères quelconques qui entourent ce qui t'intéresse, il y a les caractères spéciaux => (): (les parenthèses et deux points).

    Or, \w ne reconnaît pas ces caractères là.

    Deux options :
    - tu ajoutes seulement les parenthèses et les deux points dans ta regexp pour ne pas prendre en compte d'autres caractères spéciaux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($ligne =~ /ABC_1[\w\s:()]*BCD_2/)
    - tu remplaces tout ca par un point qui matche n'importe quel caractère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($ligne =~ /ABC_1.*BCD_2/)
    A toi de voir suivant tes données ce que tu préfères...

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

Discussions similaires

  1. expressions régulières et multiples caractères espace
    Par isabelle22 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 30/09/2009, 10h41
  2. Réponses: 4
    Dernier message: 28/06/2009, 19h09
  3. [RegEx] Expression régulière sur des caractères alphanumériques
    Par hash95 dans le forum Langage
    Réponses: 3
    Dernier message: 16/01/2008, 17h26
  4. Réponses: 3
    Dernier message: 20/02/2007, 15h48
  5. Réponses: 2
    Dernier message: 10/11/2006, 11h03

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