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

Tcl/Tk Discussion :

Variable dans Regexp


Sujet :

Tcl/Tk

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur Systèmes Embarqués
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36

    Informations professionnelles :
    Activité : Ingénieur Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Variable dans Regexp
    Bonjour à tous, je viens vers vous car j'ai un petit problème, je voulais savoir si on pouvais mettre des variables dans des Regexp ?

    Je m'explique, j'ai une chaine de caractère de la forme (par exemple) :
    Je cherche à remplacer en "un seul traitement" AB****01 par CD****02 (par exemple), les * étant n'importe quel caractère.

    A l'heure actuelle je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set ligne_tmp "XX AB****01 TOTO777"
     
    if {[regexp {(\mAB)(.+)(01\M)} $ligne_tmp tout motdeb motmil motfin] == 1} {
        set motdeb2 "CD"
        set motfin2 "02"
        regsub "$motdeb$motmil$motfin" $ligne_tmp "$motdeb2$motmil$motfin2" ligne_tmp
    }
    Et moi j'aimerai plutôt quelque chose de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    set ligne_tmp "XX AB****01 TOTO777"
     
    set mot1 "AB"
    set mot2 "01"
     
    if {[regexp {(\m$mot1)(.+)($mot2\M)} $ligne_tmp tout motdeb motmil motfin] == 1} {
        set motdeb2 "CD"
        set motfin2 "02"
        regsub "$motdeb$motmil$motfin" $ligne_tmp "$motdeb2$motmil$motfin2" ligne_tmp
    }
    J'ai besoin de ça car je vais récupérer les substitutions dans un fichier texte de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /AB....01/CD....02/
    /EF....12/GH....34/
    ...

    Connaissez-vous une solution svp ?

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Ingénieur Systèmes Embarqués
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36

    Informations professionnelles :
    Activité : Ingénieur Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Résolu tout seul.

    Il suffit de changer regexp {(\m$mot1)(.+)($mot2\M)} en regexp "(\\m$mot1)(.+)($mot2\\M)".

    ^^

Discussions similaires

  1. [RegExp] Inclure une variable dans une RegExp
    Par 17795 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/05/2011, 11h38
  2. Réponses: 6
    Dernier message: 12/11/2010, 13h07
  3. Extraire un élément faisant partie d'une variable dans une regexp
    Par byrdo dans le forum Programmation et administration système
    Réponses: 9
    Dernier message: 17/04/2009, 15h21
  4. Réponses: 13
    Dernier message: 14/06/2003, 22h15
  5. [syntaxe] Gerer les variables dans une requete
    Par rastapopulos dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 15/04/2003, 12h53

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