[regexp] delimitation de mots
5 messages
• Page 1 sur 1
- lesbonsplansdesophie
- WRInaute impliqué

- Messages: 523
- Inscription: 1 Mar 2004
[regexp] delimitation de mots
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: Tout sélectionner
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 !
- lesbonsplansdesophie
- WRInaute impliqué

- Messages: 523
- Inscription: 1 Mar 2004
Bon alors voila ce que j'ai trouve de mieux:
Donc ca donne ca:
"xyz blalballbalbl" -> true
"blalblal xyz wefwefwe" -> true
"sddfwaef xyz, wefewfwef" -> true
et enfin,
"dsfsadfsd -http://www.xyz.com wfef" -> false
Seul desavantage, si l'auteur du texte ne connait pas les regles de ponctuations et ecrit un truc du style:
"sdfsdfsd,xyz ferferferf" -> false (a cause du fait qu'il devrait y avoir un espace apres la virgule)
Enfin bon c'est mieux que rien...
Qqun a qque chose de mieux a suggérer ?
- Code: Tout sélectionner
preg_match('`(^xyz\b|\sxyz\b)`im',$chaine);
Donc ca donne ca:
"xyz blalballbalbl" -> true
"blalblal xyz wefwefwe" -> true
"sddfwaef xyz, wefewfwef" -> true
et enfin,
"dsfsadfsd -http://www.xyz.com wfef" -> false
Seul desavantage, si l'auteur du texte ne connait pas les regles de ponctuations et ecrit un truc du style:
"sdfsdfsd,xyz ferferferf" -> false (a cause du fait qu'il devrait y avoir un espace apres la virgule)
Enfin bon c'est mieux que rien...
Qqun a qque chose de mieux a suggérer ?
- kalex
- WRInaute discret

- Messages: 241
- Inscription: 14 Sep 2004
Faire ça en deux passes ?
Par exemple, utiliser la même regex que celle qui crée des liens à partir d'URL sur un forum, mais qui au lieu de remplacer l'URL par un lien la remplacerait par une chaîne vide.
Ensuite tu appliques ta regex sur la chaîne épurée des URL...
Par exemple, utiliser la même regex que celle qui crée des liens à partir d'URL sur un forum, mais qui au lieu de remplacer l'URL par un lien la remplacerait par une chaîne vide.
Ensuite tu appliques ta regex sur la chaîne épurée des URL...
- lesbonsplansdesophie
- WRInaute impliqué

- Messages: 523
- Inscription: 1 Mar 2004
oui ça marcherait, mais multiplierait le temps de traitement par deux.... merci quand même !
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Trouvez les bons mots-clés - 28-08-2002
- Nouvelle étude de WebRankInfo : les mots-clés et le référencement - 04-01-2003
- Mise à jour du générateur de mots clés dans AdWords - 24-10-2005
- Google Sets - 17-07-2002
- Filtre Google Analytics pour trouver les questions des visiteurs - 14-09-2010
- Les laboratoires de Google s'ouvrent au grand public ! - 21-05-2002
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Créer des expressions à partir de mots-clés - 05-09-2005
Consultez la description détaillée des produits ou services de Google suivants : Google Sets, Google Suggest, Google Image Labeler
- Générateur de mots-clés
Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés. - Suggestion de mots
Cet outil vous fournit une liste de mots sémantiquement proches du mot que vous fournissez en entrée. Il peut servir à vous donner des idées de mots à utiliser sur vos pages, voire de contenus à ajouter.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


