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

Langage Perl Discussion :

expression regulière - remplacement


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Par défaut expression regulière - remplacement
    Bonjour à tous

    je souhaite utiliser une expression regulière pour remplacer un texte comme ceci par ceci

    donc 1 chiffre entre 1 et 9 suivi de 3 caractères et en enlevant tout ce qui suit.

    Qu'elle est l'expression regulière pour réaliser cela ?

    Merci

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par anibal Voir le message
    Bonjour à tous

    je souhaite utiliser une expression regulière pour remplacer un texte comme ceci par ceci

    donc 1 chiffre entre 1 et 9 suivi de 3 caractères et en enlevant tout ce qui suit.

    Qu'elle est l'expression regulière pour réaliser cela ?

    Merci
    Tu peux soit utiliser une substitution en récupérant le début de la chaîne dans $1 et modifier directement ta variable, soit un match classique et récupérer $1 sans modifier ta variable de départ. Regarde dans la FAQ. Un chiffre est \d et un caractère alphanumérique (et underscore) \w.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Par défaut
    J'ai essayé ceci mais ça n'a pas l'air de marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     /usr/bin/perl -p -i -e "s/^[^\>[0-9]{1}[a-zA-Z]{3}](.*)$//g" Text.txt
    Pour dire remplacer au debut, tout sauf ce qu'il ya à l'interieur des [ ]

    Mais je pense avoir fait une erreur

  4. #4
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Ce n'est pas ainsi que fonctionnent les classes de caractères. Relis la FAQ.

  5. #5
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par anibal Voir le message
    J'ai essayé ceci mais ça n'a pas l'air de marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     /usr/bin/perl -p -i -e "s/^[^\>[0-9]{1}[a-zA-Z]{3}](.*)$//g" Text.txt
    Pour dire remplacer au debut, tout sauf ce qu'il ya à l'interieur des [ ]

    Mais je pense avoir fait une erreur

    A quoi sert le \> ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s/^([0-9]{1}[a-z]{3}).*$/$1/gi
    //i rend invariable à la casse (mais [a-zA-Z] revient au même)
    tu récupères dans $1 ce qui est entre parenthèses, tu remplaces tout par la valeur de $1 (seconde partie de la substitution).

    Pour appliquer la recherche à tout le document, il y a une subtilité ^^ que j'ai oublié . Le point ne tient pas compte des saut de ligne (\n), le tag à utiliser est //s FAQ essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s/^([0-9]{1}[a-z]{3}).*$/$1/gsi

  6. #6
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Au fait, très important : il ne faut jamais, jamais, utiliser l'option -i lorsque l'on teste un one-liner !

  7. #7
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par Schmorgluck Voir le message
    Au fait, très important : il ne faut jamais, jamais, utiliser l'option -i lorsque l'on teste un one-liner !
    A quoi cela sert-il? Pourquoi ne doit-on pas l'utiliser?

Discussions similaires

  1. expression regulière pour remplacer n'importe quoi
    Par alexis.melot dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 31/01/2014, 10h42
  2. Expression regulière remplacement
    Par omelhor dans le forum Requêtes
    Réponses: 0
    Dernier message: 06/10/2013, 17h29
  3. [RegExp] Remplacer une chaine avec l'aide des Expressions regulières
    Par Naruto_kun dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2012, 11h45
  4. [Toutes versions] remplacer une sous-chaine dans une expression regulière
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2011, 15h12
  5. Expression regulière remplacement de toutes les occurences
    Par solenseb dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 14/11/2008, 11h14

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