Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2210 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  regexp: recherche la présence de n mots dans une chaine

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

regexp: recherche la présence de n mots dans une chaine

n°406045
dropsy
et bonne chance surtout...
Posté le 23-05-2003 à 14:46:21  profilanswer
 

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 :o
merci!


Message édité par dropsy le 23-05-2003 à 14:47:40
mood
Publicité
Posté le 23-05-2003 à 14:46:21  profilanswer
 

n°406071
belgique
Posté le 23-05-2003 à 14:56:32  profilanswer
 

Moi je ferais ça de manire grossière en charchant les 2 mots.

n°406084
dropsy
et bonne chance surtout...
Posté le 23-05-2003 à 15:00:23  profilanswer
 

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 [:proy]  
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 :D

n°406438
orazur
Posté le 23-05-2003 à 17:59:31  profilanswer
 

dropsy a écrit :

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 :o
merci!  


 
heuuu si tu veux un conseil deja, les chats ca mange pas les chiens  :whistle:

n°406455
samuelp
Posté le 23-05-2003 à 18:13:30  profilanswer
 

dropsy a écrit :

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 :o
merci!  


$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.

n°406650
dropsy
et bonne chance surtout...
Posté le 23-05-2003 à 22:22:04  profilanswer
 

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  :o

n°407416
dropsy
et bonne chance surtout...
Posté le 26-05-2003 à 00:07:38  profilanswer
 

petit up du dimanche soir :bounce:

n°1930570
pyxel999
Posté le 09-10-2009 à 11:15:50  profilanswer
 

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 />";
?>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  regexp: recherche la présence de n mots dans une chaine

 

Sujets relatifs
Recherche sondage gratuit[PHP]Compter le nbre de fois qu'1 chaine de char est presente ds 1 txt
chaine de caractere avec "completer la taille d'une chaine ...
Recherche désespérement un example (JAVA/JSP) qui fonctionne[Delphi] Recherche désespéremment procédure ALPHA-BETA.....
generer une chaine de caractere a partir d'un compteur [i][MySQL] Aide pour requête de recherche
Probleme avec define : comment recuperer la chaine de la constante ?[PHP] Accents dans une chaine de caractère
Plus de sujets relatifs à : regexp: recherche la présence de n mots dans une chaine


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR