Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2006, 18h39   #1
Invité de passage
 
Inscription : octobre 2002
Messages : 42
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 42
Points : 4
Points : 4
Par défaut Expression régulière pour trouver des mots

Salut,

j'ai une liste de mot :

$liste_mot = Array("mot1","mot2","mot3");

et une chaine qui contient un texte,

je souhaiterai tester si au moins x mot de ma liste sont contenus dans ma chaine.

Le problème c'est qu'il faut que seul le mot complet soit contenu dans la chaine.
Par ex si mot1 = "chat", et si dans ma chaine j'ai "achat", ça doit rien comptabiliser.

Merci
cbroissa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2006, 18h43   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Yo !

pour chercher des mots... normalement c'est '<(^|[^a-zA-Z])ton_mot([^a-zA-Z]|$)>'
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 15h11   #3
Invité de passage
 
Inscription : octobre 2002
Messages : 42
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 42
Points : 4
Points : 4
merci,
j'ai essayé mais cela ne fonctionne pas où alors je m'y prends mal

voici le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
 
$chaine = "blabla blabla mot1 blabla blabla mot2";
 
$liste_mot = Array("mot1","mot2");
$liste_mot_reg = Array("'<(^|[^a-zA-Z])mot1([^a-zA-Z]|$)>'","'<(^|[^a-zA-Z])mot2([^a-zA-Z]|$)>'");
 
for ($i = 0; $i < count($liste_mot); $i++) {
    $liste_mot_remplace[] = "<a class='style'>".$liste_mot[$i]."</a>";
}
 
$chaine_transformee = preg_replace($liste_mot_reg, $liste_mot_remplace, $chaine);
cbroissa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 15h14   #4
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
pas besoin de faire
Code :
"'<(^|[^a-zA-Z])mot1([^a-zA-Z]|$)>'"
, ceci suffit :
Code :
'<(^|[^a-zA-Z])mot1([^a-zA-Z]|$)>'
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 15h45   #5
Invité de passage
 
Inscription : octobre 2002
Messages : 42
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 42
Points : 4
Points : 4
ha oui là c'est bon,

par contre ça supprime les espaces autour des mots,
sauf quand le mot est en début de phrase là c'est bon,

y a moyen d'arranger cela ?
cbroissa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 16h55   #6
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
dans la liste des mots remplacés, au lieu de "mot1" mets "\$1mot1\$2"
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 02h02   #7
Invité de passage
 
Inscription : octobre 2002
Messages : 42
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 42
Points : 4
Points : 4
ça marche nickel,
merci beaucoup.
cbroissa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 23h39   #8
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 30
Points : 27
Points : 27
utilise plutot les functions comme preg_match , preg_replace et tu utilise comme motif "/\bMot1\b/i" , ca permet de ne selectionner que Mot1 , le \b indique la limite du mot !! et le i apres le / rend insensible a la casse!!
coolmic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web