regexp: recherche la présence de n mots dans une chaine - PHP - Programmation
Marsh Posté le 23-05-2003 à 14:56:32
Moi je ferais ça de manire grossière en charchant les 2 mots.
Marsh Posté le 23-05-2003 à 15:00:23
| Belgique a écrit : Moi je ferais ça de manire grossière en charchant les 2 mots.   | 
 
 
bah oui, j'y ai pensé, mais c'est pas très propre 
  
en plus, j'ai donné un exemple à deux mots, mais dans le cas général c'est n mots (enfin ça ça se règle pas une boucle) 
et puis c'est aussi pour ma culture ![]()
Marsh Posté le 23-05-2003 à 17:59:31
| dropsy a écrit : Salut   | 
 
 
heuuu si tu veux un conseil deja, les chats ca mange pas les chiens  
 
Marsh Posté le 23-05-2003 à 18:13:30
| dropsy a écrit : Salut   | 
 
$varArray=("chien", "chat" ) ; 
$tring="" ; 
 for ($counter=0;$counter<count($varArray);$counter++) 
{ 
  if ($counter>0) 
     $string.= "&&" 
  $string.="preg_match(\"/$varArray[$counter]/i\",$TAPHRASE); 
 
} 
 
eval("if (".$string." )" ); 
 
 Bon je te donne un aperçu, y a des fautes, mais tu trouveras la solution peut etre grace a ça.
Marsh Posté le 23-05-2003 à 22:22:04
samuelp: l'opérateur && existe 
 je l'ai vu nul par dans les tuto que j'ai lu. merci j'essaye lundi matin 
 
 
orazur: ça dépend du chat  
 
Marsh Posté le 09-10-2009 à 11:15:50
bonjour, 
voilà une reponse tardive mais qui peut encore servir a d'autres utilisateurs. J'ai amelioré l'idee de samuelp pour qu'elle fonctionne correctement (en utilisant l'operateur  *= qui compile automatiquement le resultat final). Il y a peut etre encore mieux a faire.  Bonne journee. 
<?php 
$phrase1="le chat a mangé le chien"; 
$phrase2="le chien cherche le chat"; 
$phrase3="le chat est vert citrouille"; 
$tablo= array("chien","chat" ); 
$maxi=count($tablo); 
$resu=1; 
for ($x=0;$x<$maxi;$x++) { 
 	$resu*=preg_match("/$tablo[$x]/i",$phrase1); 
} 
echo"<br />*****$phrase1****<br />"; 
if ($resu==1) echo "$resu=contient tout"; else  echo "$resu=contient pas tout"; 
echo"<br />*****chien & chat****<br />"; 
?>
Marsh Posté le 23-05-2003 à 14:46:21
Salut
 
j'essaye de construire l'expression régulière qui permet de tester la présence de 1 ou plusieurs mots dans une chaine dde caractères et ce dans n'importe quel ordre d'apparition.
par ex, si j'ai "chien" et "chat" comme mot, les deux phrases suivante devront marcher: "le chat a mangé le chien" et "le chien cherche le chat".
par contre, "le chat est vert citrouille" doit doit pas passer.
ça a pas l'air très dur, mais j'y arrive pas
merci!
Message édité par dropsy le 23-05-2003 à 14:47:40