Code regex python

visit -  
[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.

1 réponse

  1. Utilisateur anonyme
     
    Bonsoir

    pour trouver width:3Chiffrespx
    la syntaxe est
    width:(\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 mximun
    width:(?<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.
    0
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      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
      0