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 :

remplacement dans 1 chaînes (expr régulières) [Fait]


Sujet :

Python

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 15
    Points : 9
    Points
    9
    Par défaut remplacement dans 1 chaînes (expr régulières)
    je ne suis plutôt débutant en Python, dans une chaîne :
    Timer 1 >= 10 And Timer 2 < 20 And Counter 1 >= 110
    je veux remplacer les And ou Or par And + retour à la ligne
    mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    expression = re.sub(r'^(.*)\s+(And|Or{1})\s+(.*)$',r'\1 \2\n\3',expression.strip ())
    print "expression = '%s'\n" % expression
    remplace que la dernière itération :
    expression = 'Timer 1 >= 10 And Timer 2 < 20 And
    Counter 1 >= 110'
    commenr pourais-je donc le faire pour tous, en Perl ou shell unix on utilise g pour global.

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    expression = re.sub(r'^(.*)\s+(And|Or{1})\s+(.*)$',r'\1 \2\n\3',expression.strip ())
    print "expression = '%s'\n" % expression
    dans ce code le caractere '^' indique le debut de la chaine et '$' la fin, donc tu cherche un 'And' ou un 'Or' entre le debut et la fin de ta chaine, la recherche etant 'gloutonne' elle donne le dernier 'And'.

    voila un piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> result = re.sub(r'\s+(And|Or{1})\s',r' \1 \n',expression.strip ())
    >>> print result
    Timer 1 >= 10 And
    Timer 2 < 20 And
    Counter 1 >= 110
    le_GLu

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    merci après un test l'expr régulière est correcte
    merci encore le_Glu

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 30/06/2010, 15h23
  2. [PHP 5.0] Occurences multiples à remplacer dans une chaîne
    Par oneTime dans le forum Langage
    Réponses: 5
    Dernier message: 14/04/2009, 00h36
  3. [Tableaux] Faire un remplacement dans une chaîne
    Par méphistopheles dans le forum Langage
    Réponses: 4
    Dernier message: 19/12/2006, 21h31
  4. Réponses: 4
    Dernier message: 04/11/2006, 20h36
  5. [MySQL] Remplacer dans une chaîne des motifs spéciaux : \' et \"
    Par BARBIER dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 25/11/2005, 17h39

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