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
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
Salut,
devrait faire l'affaire
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"; }
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.
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/)
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 =~ /\bmort\b/i)
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ($str =~ /(?:_|\b)mort(?:_|\b)/i)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager