IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

expressions régulières (re) : parenthèses capturantes


Sujet :

Python

  1. #1
    Membre averti Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Points : 344
    Points
    344
    Par défaut expressions régulières (re) : parenthèses capturantes
    Bonjour,
    Je me demandais juste comment faire les parenthèses capturantes avec les expressions régulières de Python, plus précisément, les équivalents des variables spéciales $1, $2, ... de Perl

  2. #2
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import re
     
    m = re.search(r'(.)(.)(.)', 'abc')
    print m.groups(1) # => a
    print m.groups(2) # => b
    print m.groups(3) # => c
    Je suis plus sûr si c'est .group() ou .groups(), mais c'est comme ça qu'on fait.

  3. #3
    Membre averti Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Points : 344
    Points
    344
    Par défaut
    Merci GnuVince,
    Bon, il y avait comme qui dirait une petite erreur de ma part, les $1, $2, ..., c'est pour PHP , en Perl c'est \1, \2, ..., ce qui est aussi le cas pour Python.

    Les groups(), ça marche aussi très bien, merci.

    En gros, on a un truc comme ceci:
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    >>> import re
    >>> text = 'abc'
    >>> regex = re.compile('(.)(.)(.)')
    >>> match = regex.match(text)
    >>> print match.group(1, 2, 3)
    ('a','b','c')
    >>> print match.groups()[0] # ou print match.group(1)
    a
    >>> print match.groups()[1] # ou print match.group(2)
    b
    >>> print match.groups()[2] # ou print match.group(3)
    c
    >>> text = regex.sub(r'\3\2\1')
    >>> print text
    'cba'

    Encore une fois, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Expression régulière - Nombre entre parenthèses
    Par scriptiz dans le forum Langage
    Réponses: 1
    Dernier message: 28/05/2011, 18h17
  2. Réponses: 2
    Dernier message: 25/06/2008, 23h19
  3. Parenthèses dans une expression régulière
    Par papyreno dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 10/05/2006, 16h28
  4. Expressions réguliéres
    Par Tooms dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2002, 18h42
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo