WRInaute occasionnel
Salut,
Je suis entrain de travailler sur une sorte de moteur de recherche, et utilise la regexp suivante (PCRE) pour détecter la présence du mot "xyz" dans la chaine $chaine:
l'assertion \b permet de detecter une limite de mot (en incluant la ponctuation) et les parametres i et m permettent de ne pas tenir compte de la casse ni des sauts de lignes.
Seulement j'ai un probleme, si mon mot c'est par exemple "yahoo" et que $chaine comporte une url style -www.balba.yahoo.com/truc alors ma regexp retourne vrai. C'est normal, $chaine comporte bien le "mot" yahoo encadré par deux points, donc preg_match le detecte ce que je ne veux pas (car en realite $chaine ne "parle" pas de yahoo a proprement parler)
Donc ma question est la suivante: auriez vous une idee de regexp me permettant de detecter le mots sauf s'il est entre deux points (ce qui signifie que ce mot est dans une url), pour eviter de polluer ma recherche ?
Merci d'avance !
Je suis entrain de travailler sur une sorte de moteur de recherche, et utilise la regexp suivante (PCRE) pour détecter la présence du mot "xyz" dans la chaine $chaine:
Code:
preg_match('`\bxyz\b`im',$chaine);
l'assertion \b permet de detecter une limite de mot (en incluant la ponctuation) et les parametres i et m permettent de ne pas tenir compte de la casse ni des sauts de lignes.
Seulement j'ai un probleme, si mon mot c'est par exemple "yahoo" et que $chaine comporte une url style -www.balba.yahoo.com/truc alors ma regexp retourne vrai. C'est normal, $chaine comporte bien le "mot" yahoo encadré par deux points, donc preg_match le detecte ce que je ne veux pas (car en realite $chaine ne "parle" pas de yahoo a proprement parler)
Donc ma question est la suivante: auriez vous une idee de regexp me permettant de detecter le mots sauf s'il est entre deux points (ce qui signifie que ce mot est dans une url), pour eviter de polluer ma recherche ?
Merci d'avance !