Problèmes de REGEX

Résolu
cs_bobino75 Messages postés 20 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 14 août 2012 - 21 mai 2009 à 19:33
cs_bobino75 Messages postés 20 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 14 août 2012 - 21 mai 2009 à 20:42
Bonjour à vous,

Je commence à travailler avec les REGEX et je me retrouve avec quelques problèmes.

Je fais une recherche dans une base de données avec la commande:
preg_match("/\b$keywords\b/i" , $myrecord["ligne"]).
Présentement, si je cherche "le", on me donne tous les mots avec les lettres "le" à l'intérieur ex.: elle, levant, etc. Ce que je voudrais, c'est qu'elle me donne seulement les "le" du texte.

Aussi, dans mon $keywords, c'est les mots, séparés par des pipes "|", qui me permettent de faire une recherche avec plusieurs mots. Mais quand je fais la recherche, il me sort tous les enregistrements qui contiennent au moins un de ces mots. Mois j'aimerais, si j'ai deux mots (max de 5), avoir les deux mots dans la phrase. En réalité c'est un ET que je veux et non un OU.

Dernier point, est-ce que c'est possible de rechercher, par exemple, "pomme de terre" mais que parfois, certain de ces mots dans la BD soient entrecoupé de caractère.

Exemple d'un enregistrement : "F: la pomme (1.1)(RIRE) de terre".

Dans ce cas, il faudrait que la recherche trouve cette ligne car les mots ont été trouvé. Il faut par contre que les mots soient dans un intervalle de 60 mots.

Je sais que je vous en demande beaucoup mais je suis bloqué et avec les connaissances que j'ai, je dois chercher sur le net et je ne trouve rien pour ça.

Merci !

1 réponse

cs_bobino75 Messages postés 20 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 14 août 2012
21 mai 2009 à 20:42
Rebonjour,

à vrai dire, le REGEX preg_match("/\b$keywords\b/i" , $myrecord["ligne"]) fonctionne bien. C'est un autre problème que je vais tester.

Désolé ! ;-)
3
Rejoignez-nous