Remplacement de charretières avec recherche position

Messages postés
5
Date d'inscription
dimanche 27 mai 2007
Dernière intervention
30 avril 2017
-
Bonjour,

je suis a la recherche d'une méthode php permettant de manipuler une chaîne de caractères comme suit:
[Art3_Type] => FR: Carton
DE: Karton
[Art3_Contenant] => FR: Carton
DE: Karton
[Art3_Capacite] => Capacité / Kapazität
- 

Dimensions / Maße 
- [Art3_Quantite] => 6 [Art3_Com] => - [Art4_Type] => FR: Sacs 110l
DE: Säcke 110L
[Art4_Contenant] => FR: Sacs 110l
DE: Säcke 110l
[Art4_Capacite] => Capacité / Kapazität
110l 

Dimensions / Maße 
- [Art4_Quantite] => 7 [Art4_Com] => - ghjgfj [Art5_Type] => FR: Sacsl
DE: PET SäckeL
[Art5_Contenant] => FR: Sacsl
DE: SäckeL
[Art5_Capacite] => Capacité / Kapazität
360l 

Dimensions / Maße 
- [Art5_Quantite] => 0 [Art5_Com] => - [Art6_Type] => FR: Support
DE: halter
[Art6_Contenant] => FR: Support
DE: halter
[Art6_Capacite] => Capacité / Kapazität
- 

Dimensions / Maße 
- [Art6_Quantite] => 0 [Art6_Com] => - [Art7_Type] => FR: Bac
DE: PET Behälter
[Art7_Contenant] => FR: Bac
DE: PET Behälter
[Art7_Capacite] => Capacité / Kapazität
- 

Dimensions / Maße 
- [Art7_Quantite] => 0 [Art7_Com] => - 


Je cherche a supprimer les lignes suivantes si [Art_Quantite] => 0:
[Art7_Type] => FR: Bac
DE: PET Behälter
[Art7_Contenant] => FR: Bac
DE: PET Behälter
[Art7_Capacite] => Capacité / Kapazität
- 

Dimensions / Maße 
- [Art7_Quantite] => 0 [Art7_Com] => - 


Mon problème est que la longueur des caractères peut varier...
Etant débutant en prog, je veux bien de vos lumières. si quelqu’un peux m'aider?
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
12412
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 décembre 2018
1
Merci
Bonsoir

voici la syntaxe de la regex de recherche (tester pour C#...)

\[Art(\d+)_.*- \[Art(\1)_Quantite] => 0 \[Art\1_Com] => - 

En Français ça veut dire
  • "[Art"
  • suivi de 1 ou plusieurs chiffres (que l'on met dans la capture 1)
  • suivi de "_"
  • suivi de n'importe quel caractères, un nombre indéterminé de fois
  • suivi de [Art
  • suivi de la valeur de la capture 1
  • suivi de "_Quantite] => 0 [Art"
  • suivi de la valeur de la capture 1
  • suivi de _Com] => -


Il faut mettre l'option SingleLine, ça fait comme il n'y avait pas de saut de ligne.

Tu peux voir le résultat ici.

Il faut faire défiler le texte de Input vers le bas pour voir les captures surlignées, tu peux aussi regarder le résultat par capture dans l'onglet table.


Maintenant, je ne sais pas comment ça s’implémente en PHP, ni comment marche le Replace.
A toi de chercher.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

oxedgar
Messages postés
5
Date d'inscription
dimanche 27 mai 2007
Dernière intervention
30 avril 2017
-
Merci Whismeril. Je ne connais pas cet outil mais je suis bluffé par son fonctionement! En effet il me donne le résultat escompté si je coche la case remplacer... Mais je ne trouve pas le code de la fonction qu'il utilise! Savez-vous où ou comment la trouver?

http://regexstorm.net/...

J'ai aussi trouvé cet outil orienté php mais ton filtre ne semble pas fonctionner :
https://regex101.com/r/oZnith/1

Merci pour ton aide
Commenter la réponse de Whismeril
Messages postés
12412
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 décembre 2018
0
Merci
Bonjour

Je ne fait pas de php, mais il existe un outils de recherche / remplacement "universel" : les expressions régulières (regex).

Là tout de suite, je ne peux pas t'aider pour la syntaxe, mais ça te laisse le temps de te renseigner sur cet outil.
Il existe des sites où tu peux tester tes regex, cherches en un pour php, l'implementation pouvant varier selon le langage.
Commenter la réponse de Whismeril
Messages postés
12412
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 décembre 2018
0
Merci
Comme je te l'ai dit je ne fais pas de PHP.
Si je te montres comment s'implémente un Replace en C#, ça ne va pas t'aider beaucoup plus.

Il y a des tutos sur le net, j'en ai trouvé plusieurs
http://g-rossolini.developpez.com/tutoriels/php/regex/
http://www.rexegg.com/regex-php.html
http://www.phpf1.com/tutorial/php-regular-expression.html

Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.