Oui bonjour, je suis débutant en python et j'ai besoin d'aide pour remplacer sur plusieurs lignes avec expression régulière exemple si j'ai
je voudrais remplacer le nombre décimal de chaque balise dont la partie est entre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <JobProvider> <MaxJobPerCulture> <LowLife>décimal</LowLife> <AllAm>décimal</AllAm> <Suit>décimal</Suit> <Elite>décimal</Elite> </MaxJobPerCulture> <JobAttractivityPerCulture> <LowLife>décimal</LowLife> <AllAm>décimal</AllAm> <Suit>décimal</Suit> <Elite>décimal</Elite> </JobAttractivityPerCulture> </JobProvider>et
Code : Sélectionner tout - Visualiser dans une fenêtre à part <MaxJobPerCulture>par le même mais multiplier individuellement par variable fixe pour tout les nombres , mais voilà comme seul ces 2 balise pour cette section
Code : Sélectionner tout - Visualiser dans une fenêtre à part </MaxJobPerCulture>est obligatoire les autres quel que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <MaxJobPerCulture> <LowLife>décimal</LowLife> <AllAm></AllAm> <Suit>décimal</Suit> <Elite>décimal</Elite> </MaxJobPerCulture>
Code : Sélectionner tout - Visualiser dans une fenêtre à part <LowLife>décimal</LowLife>
Code : Sélectionner tout - Visualiser dans une fenêtre à part <AllAm>décimal</AllAm>et
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Suit>décimal</Suit>peuvent être là (aux moins 1 des 4 minimum) aléatoirement c'est à dire présente ou non. J'ai essayer ça comme base
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Elite>décimal</Elite>
sur un exemple simple de 4 lignes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 # -*- coding: cp1252 -*- import re #Multiplieurs multiplieurCapacity = int(raw_input('entrée un nombre pour multiplier la Capacitée par ')) def multi(MaxJobPerCulture): return MaxJobPerCulture.group(1) + MaxJobPerCulture.group(2) + MaxJobPerCulture.group(3) + str(int(MaxJobPerCulture.group(4)) * multiplieurCapacity) + MaxJobPerCulture.group(5) + MaxJobPerCulture.group(6) + MaxJobPerCulture.group(7) MaxJobPerCulture_AllAm='([\t]*<MaxJobPerCulture>)([\n\t.]*)(<AllAm>)(\d*)(</AllAm>)(\n*.*)(\n[\t]*</MaxJobPerCulture>)' MaxJobPerCulture_Suit='([\t]*<MaxJobPerCulture>)([\n\t.]*)(<Suit>)(\d*)(</Suit>)(\n*.*)(\n[\t]*</MaxJobPerCulture>)' print MaxJobPerCulture_AllAm print MaxJobPerCulture_Suit
mais ça ne marche pas, que sur la 1er balise AllAm, pas la 2ème Suit et ça peut être encore plus compliquer que ça et même dans le désordre. Ma question est simple comment faire pour que le remplacement marche sur la zone de balise d'écrit plus haut entre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <MaxJobPerCulture> <AllAm>décimal</AllAm> <Suit>décimal</Suit> </MaxJobPerCulture>et
Code : Sélectionner tout - Visualiser dans une fenêtre à part <MaxJobPerCulture>ce pour des balises dans n'importe ordre et quel sois oui ou non présente?
Code : Sélectionner tout - Visualiser dans une fenêtre à part </MaxJobPerCulture>
Partager