Code regex python
visit
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un fichier dans lequel il y a cette expression:
width:234px
le but est de remplacer par: width: (234/2)px
pouvez-vous me donner un exemple de code simple.
j'ai un fichier dans lequel il y a cette expression:
width:234px
le but est de remplacer par: width: (234/2)px
pouvez-vous me donner un exemple de code simple.
1 réponse
-
Bonsoir
pour trouver width:3Chiffrespx
la syntaxe estwidth:(\d{3})px
Tu peux donner un nom à la capture (MesChiffres par exemple)width:(?<MesChiffres>\d{3})px
S'il peut y avoir entre 2 et 4 chiffres (par exemple)width:(?<MesChiffres>\d{2,4})px
S'il y a au moins un chiffre, mais tu ne sais pas combien au mximunwidth:(?<MesChiffres>\d+)px
On peut aussi faire une Regex qui trouve entre 127 et 3456, etc.... plus ta spécification est précise et plus la Regex le sera.
Tu peux t'amuser à tester en ligne, il y a ces quelques sites
http://regexstorm.net
https://regex101.com
http://www.pyregex.com/
etc...
Après comment implémenter le remplacement en Python, je ne sais pas.
-
on peut faire comme cela :
import re st = "width:234px" st = re.sub('^width:(\d+)px', 'width:(\\1/2)px', st) print(st)
donne :$ python3 visit.py
width:(234/2)px
Les parenthèses dans la regexp forment un groupe de capture identifié par \1 (s'il y en a d'autres, les expressions capturées seront identifiées \2, \3, etc.), qu'il est possible d'utiliser dans le 2ème argument de re.sub (avec échappement sauf si la string est raw)
Dal
-