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 :

Regexp pour supprimer plein de blancs


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 38
    Points
    38
    Par défaut Regexp pour supprimer plein de blancs
    J'arrive pas à voir comment faire une belle regexp pour supprimer pleins de blancs en fin de chaîne de caractère du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $text="1. toto et tata                      "
    j'ai pensé à mais je le sens pas trop; ais-je raison de douter?

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Mis à part les fautes de syntaxes, ta regex est la bonne solution pour faire cela.

    --
    Jedaï

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    Pour supprimer les blancs de fin:
    Pour supprimer les blancs de début:
    Ou, plus simplement, si tu travailles sur $_
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    s/\s+$//;
    s/^\s+//;

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    et quelles sont les fautes de syntaxes?
    Sinon autre regex un peu liée, comment détecter qu'on a pas une ligne faite que d'espaces ou juste d'un retour chariot?
    Quand je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tata= qqch;
     
    if($tata= ~m/./) {
    blablabla
    }
    En faisant des prints ça me change la valeur de $tata quand ça passe dans le if.
    Pourquoi?

  5. #5
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Petitcodeur
    et quelles sont les fautes de syntaxes?
    Tu as le droit d'être observateur, et de remarquer que là où tout le monde écrit :
    toi tu écris :
    L'opérateur qui applique une regex à une variable est "=~", là tu es en train de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $chaine =  ( ~ ($_ =~ regexp) )
    (~ est le not bit à bit, fonctionne aussi sur une chaîne de longueur quelconque)

    De plus dans ton premier exemple, le $ marquant la fin de la ligne est au début de la regexp ! Ce qui logiquement voudrait dire que tu essaies de supprimer des espaces après la fin de ta chaîne...
    (De toute façon, Perl ne le comprend pas comme ça, il le comprend plutôt comme $\ puis "s")

    --
    Jedaï

  6. #6
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    et de remarquer aussi que tu as codé ta regexp "à l'envers" !!!

    Là tu recherches une fin de ligne puis des espaces, alors que ce tu veux, c'est recherches des espaces AVANT la fin de la ligne :


    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Merci bien.

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

Discussions similaires

  1. regexp pour supprimer des dossiers
    Par Oega dans le forum VBScript
    Réponses: 1
    Dernier message: 16/07/2008, 08h38
  2. Utiliser awk pour supprimer des retours charrios
    Par tomsoyer dans le forum Linux
    Réponses: 3
    Dernier message: 03/01/2005, 18h27
  3. regexp pour email
    Par noinneh dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/12/2004, 11h11
  4. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 12h26
  5. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 08h16

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