recherche d'un mot 'exact' ds une chaine [php] - PHP - Programmation
Marsh Posté le 24-08-2005 à 11:54:22
heu vu que tu connais le mot que tu veux chercher, pourquoi vouloir obtenir une chaine qui le contient ???
Marsh Posté le 24-08-2005 à 11:59:22
je veux extraire des lignes d'un fichier csv
je parcours chaque ligne une par une et qd je vois le moit recherché je retire toute la ligne. Mon exemple prend "paris" mais il n'y a pas que ca
Si par exemple je mets "paris-centre" a rechercher je n'aurais que la ligne du texte contenant exactement "paris-centre" qui est retourné
Marsh Posté le 24-08-2005 à 12:40:20
\b(?<!\-)paris(?!\-)\b
Marsh Posté le 24-08-2005 à 13:43:04
ok Sielfried mais a quoi corespond tous ca ?
je mets ca comme ca : "ereg ("(?<!\-)paris(?!\-)", $chaine)" ??
Marsh Posté le 24-08-2005 à 14:10:47
En fait ça dépend ce que tu veux. Ton exemple sur le post de base est pas clair.
T'as une chaîne et tu veux savoir si elle contient un mot donné, c'est ça ?
Marsh Posté le 24-08-2005 à 14:24:04
erwan551 a écrit : je mets ca comme ca : "ereg ("(?<!\-)paris(?!\-)", $chaine)" ?? |
ereg ne gère pas les assertions, donc utilise preg
en gros la regexp de silfried va chercher les occurences de "paris" qui ne sont pas précédées ni suivies d'un tiret.
Marsh Posté le 24-08-2005 à 14:25:40
en fait, j'ai plein de lignes dans un fichier
par exemple :
Paris;fdgd;dgfdgr;rgeg;grggg
Rennes;gerg;ge;egehge;ege
Paris-centre;sgr;rgre;egrg;egrgver
Marseille;sdgs;ergr;egreg;grere
Tours;zegtgr;efs;grre;gegreg
Ce fichier s'appelle 'donnee.txt'
un utilisateur peut choisir via un menu déroulant comprenant : Paris, Rennes, Paris-centre, Marseille, Tours.
S'il choisit "paris" je veux faire ressortir dans un fichier seulement la ligne "Paris;fdgd;dgfdgr;rgeg;grggg" et non pas la ligne "Paris-centre;sgr;rgre;egrg;egrgver"
En faisant un 'ereg ($ville, $fichier)', j'obtiens les deux lignes conteant Paris donc c'est pas bon !
Marsh Posté le 24-08-2005 à 14:28:12
Ben pour chaque ligne tu passes un coup de
Code :
|
et ça devrait le faire. Si ça renvoie 1 c'est une ligne qui convient, sinon 0.
Marsh Posté le 24-08-2005 à 14:34:21
ou
Code :
|
tu auras dans le tableau $match toutes les lignes trouvées, pas besoin de parser ligne par ligne
Marsh Posté le 24-08-2005 à 11:36:07
Bonjour a tous,
j'ai par exemple ceci :
"paris-gare"
"paris-centre"
"paris"
etc..
je cherche le mot "paris" et je voudrais obtenir seulement la chaine de caractere qui contient exactement le mot "paris"
Dans l'exemple ca me retourne donc juste "paris" et non "paris-gare" et "paris-centre"
Pour le moment j'utilise ceci 'ereg($value, $chaine);'
Merci de votre aide