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