|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour
J'ai besoin de nettoyer un fichier contenant des enregistrements et des champs. Je fais cela avec un script. Ce script utilise la fonction ereg_replace() pour remplacer ce qui n'est pas désiré dans le token, par rien ( "" ). Donc, mon expression rationnelle POSIX ( je ne connais que POSIX ), devra reconnaître tout ce qui n'est pas ce que je veux garder. Appelons les tokens que je veus garder: arg1 et arg2, par exemple. Pour trouver uniquement arg1 et/ou arg2 dans le token, je dois utiliser quelle expression rationnelle ? "[^(arg1)(arg2)]" , ou "[^(arg1)(arg2)]+" , ou "^[^(arg1)(arg2)]$" , ou "^[^(arg1)(arg2)]+$" Ensuite, en supposant que l'expression rationnelle ci-desus, soit mise dans la variable: $pattern, je peux faire: $champ = ereg_replace($pattern, "", $champ); Et ma variable $champ sera alors nettoyée des scories qui l'encombrent. Elle ne gardera que arg1 et/ou arg2. Merci beaucoup de vos réponses. Bien à vous. Amicalement. Jean-François Ortolo -- Visitez mon site gratuit donnant des Statistiques et des Historiques Graphiques sur les Courses de Chevaux: http://www.ortolojf-courses.com |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Jean-Francois Ortolo wrote:
J'ajoute... Qu'il peut y avoir plusieurs sous-token arg1 ou arg2 dans le token initial, et que je veux extraire avec ereg_replace(), ces seuls sous-tokens, à l'exclusion de ce qui n'est pas arg1, ou arg2. Donc, il faut que l'expression rationnelle posix, reconnaisse tout sauf les sous-tokens arg1 et arg2. Merci beaucoup de vos réponses. Bien à vous. Amicalement. Jean-François Ortolo PS J'ai vaguement vu, sur un commentaire du PHP Manual de cette fonction ereg_replace(), que l'on devait indiquer comme expression rationnelle, pou reconnaitre tout sauf le mot [WORD], cette expression: [^[WORD]]{0} Mais je ne vois pas du tout la logique de ces apostrophes avec le 0, et je ne sais pas si ça marche avec plusieurs sous-token de type [WORD1], [WORD2], etc... -- Visitez mon site gratuit donnant des Statistiques et des Historiques Graphiques sur les Courses de Chevaux: http://www.ortolojf-courses.com |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Jean-Francois Ortolo a écrit :
> J'ai besoin de nettoyer un fichier contenant des enregistrements et > des champs. Je fais cela avec un script. > Ce script utilise la fonction ereg_replace() pour remplacer ce qui > n'est pas désiré dans le token, par rien ( "" ). est-ce qui ne serait pas plus simple de créer une nouvelle chaîne ne contenant que les expressions recherchées ? > Donc, mon expression rationnelle POSIX ( je ne connais que POSIX ), > devra reconnaître tout ce qui n'est pas ce que je veux garder. > Appelons les tokens que je veus garder: arg1 et arg2, par exemple. > Pour trouver uniquement arg1 et/ou arg2 dans le token, je dois > utiliser quelle expression rationnelle ? moi je coderais : if(preg_match_all('`(arg1|arg2)`', $ligne, $reg)) { $nouvelle_ligne = implode('', $reg[0]); } else { $nouvelle_ligne = $ligne; } (d'accord, c'est pas avec ereg, mais ereg c'est _M A L_ ;-) -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/ |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
P'tit Marcel wrote:
> > moi je coderais : > > if(preg_match_all('`(arg1|arg2)`', $ligne, $reg)) { > $nouvelle_ligne = implode('', $reg[0]); > } > else { > $nouvelle_ligne = $ligne; > } > > (d'accord, c'est pas avec ereg, mais ereg c'est _M A L_ ;-) > Bonjour Monsieur Finalement, après quelques essais, j'ai trouvé. L'expression rationnelle est: "[^(arg1)(arg2)]+" C'est-à-dire: "Tout sauf arg1 ou arg2, pouvant compter plusieurs caractères." Mes précédents essais avaient raté, parce que mes argument arg1 comportaient des expressions rationnelles du type: ([arg1_1arg1_2]) au lieu de: (arg1_1|arg1_2) Avec cette dernière formulation ça marche. Je vous avoue que je suis rétif aux expressions rationnelles Perl, que je n'ai jamais abordé réellement, et au vu du PHP Manual, qui me paraissent très compliquées à maîtriser. Merci beaucoup de votre réponse. Bien à vous. Amicalement. Jean-François Ortolo -- Visitez mon site gratuit donnant des Statistiques et des Historiques Graphiques sur les Courses de Chevaux: http://www.ortolojf-courses.com |
|
![]() |
| Outils de la discussion | |
|
|