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

Programmation et administration système Perl Discussion :

Regex pour trouver un mot


Sujet :

Programmation et administration système Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 196
    Points : 61
    Points
    61
    Par défaut Regex pour trouver un mot
    Bonjour à tous
    voila je cherche une regex pour trouver un mot exactement dans une chaine de caractère.
    Elle doit exister mais je ne trouve pas
    Attention je ne cherche pas la regex avec seulement \w car je veut le mot mot pour mot
    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 94
    Points
    94
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $verif = index($ligne, 'le mot');
                    if ( $verif != -1 ) 
                    {
                            print " ai trouvé le mot \n";
                     }
    devrait faire l'affaire

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Pour être sûr de trouver un mot exact, il faut que tu vérifies si le mot n'est pas inclus dans un mot plus long, exemple "mort" dans "mortadelle". Pour faire ça tu peux utiliser les word-boundaries \b qui sont la limite entre un caractère appartenant à la classe de caractère \w et un caractère n'y appartenant pas ou le début ou la fin de la chaîne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($str =~ /\bmort\b/)
    au besoin tu peux ajouter le modificateur i, si tu souhaites faire une recherche ne tenant pas compte de la casse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($str =~ /\bmort\b/i)
    La classe de caractère \w contenant également le caractère souligné (underscore), si tu veux trouver le mot précédé ou suivit par ce caractère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($str =~ /(?:_|\b)mort(?:_|\b)/i)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 196
    Points : 61
    Points
    61
    Par défaut
    Merci
    Aussitôt dit aussitôt fait

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/09/2014, 07h25
  2. une regex simple : trouver un mot en 6 majuscules
    Par EnRadeSurEclipse dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/05/2010, 15h55
  3. [RegEx] regex pour trouver une phrase - caractère espace
    Par L0007 dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2008, 17h01
  4. requête pour trouver un mot dans une phrase
    Par FRIGAUX dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 25/11/2006, 22h18
  5. [RegEx] Expression régulière pour trouver des mots
    Par cbroissa dans le forum Langage
    Réponses: 7
    Dernier message: 26/05/2006, 23h39

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