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 :

Probleme de coupe dans une chaine


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut Probleme de coupe dans une chaine
    Kikoo, je cherche le meilleur découpage pour un split j'en est testé plusieur mais j'aimerais vos avis éclairé pour etre sure .

    voici mon découpage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $chaine = "Hello je suis the best lol ";
    my @string = split(/ /, $chaine);
    Est t'il mieux de mettre / / ou /\s/ ?
    Cela a t'il un inscidence si il y a un ou plusieurs espace ?

    Question qui n'a rien avoir,
    Comment faire pour supprimer les éléments vide d'un tableau j'ai testé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @tableau = grep{ defined } @tableau;
    mais sa donne rien

    MERCI !!!

  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
    Si tu mets /\s/ tu risques d'avoir des champs vide dès lors qu'il y a plusieurs espaces. Le mieux pour couper naturellement selon les espaces est de mettre ' ' qui a un comportement particulier.

    Pour la deuxième question, ça dépend ce que tu appelles "vide", ta ligne de commande ne supprime que les "undef", pas les chaînes vides par exemple (il faudrait mettre "$_ ne ''" à la place de "defined").

    --
    Jedaï

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Jedai
    Si tu mets /\s/ tu risques d'avoir des champs vide dès lors qu'il y a plusieurs espaces. Le mieux pour couper naturellement selon les espaces est de mettre ' ' qui a un comportement particulier.

    Pour la deuxième question, ça dépend ce que tu appelles "vide", ta ligne de commande ne supprime que les "undef", pas les chaînes vides par exemple (il faudrait mettre "$_ ne ''" à la place de "defined").

    --
    Jedaï
    Je suis désolé mais je n'ai pas tous compris ou met ton les ' ' dans split ?
    Qu'apelle tu couper naturellement exactement ?

  4. #4
    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
    Tu dois écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my @fields = split ' ', $chaine;
    C'est différent de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my @fields = split / /, $chaine;
    qui coupe sur les espaces (un seul espace à la fois, contrairement à ' ') et conserve les champs vides au début (contrairement à ' ' qui les supprime).
    Je précise également que /\s/ coupe sur les espaces dans le sens général (c'est à dire aussi les \n et \t, comme ' '), mais un seul à la fois (contrairement à ' ').

    --
    Jedaï

Discussions similaires

  1. Réponses: 12
    Dernier message: 20/12/2007, 20h44
  2. Probleme dateAdd dans une chaine sql
    Par dedein84 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 31/07/2007, 15h56
  3. Problème avec des caractères spéciaux dans une chaine
    Par thibaut06 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 20/11/2006, 16h46
  4. Réponses: 8
    Dernier message: 05/08/2006, 13h30
  5. Probleme de blanc dans une chaine
    Par Bahan dans le forum C
    Réponses: 22
    Dernier message: 25/07/2006, 16h38

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