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 :

Decouper (parser) une chaine de caractere


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut Decouper (parser) une chaine de caractere
    J'ai une variable string qui contient quelques choses comme ca :
    " alert TCP any UDP home_net (msg : "bonjour le monde", port : 5123) "

    et je voudrais obtenir une liste qui contient ca :
    [0] = alert
    [1] = TCP
    ...
    [4] = home_net
    [5] = (msg : "bonjour le monde", port : 5123)

    Je pourrais le faire en testant le caractère espace puis en gardant le boolean parenthese ouverte ETC ETC mais je suis convaincu qu'il existe un module qui fait tout cela automatiquement et mieux que moi

    sachant que apres je voudrais obtenir une hash table a partir de [5]
    {msg , "bonjour le monde}
    {port , 5123}

    Merci de vos propositions ....

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Si ton string est toujours bâti sur le même modèle, partition() sera ton amie.

    chaine.partition(chars) découpe une chaine en trois: ce qui est avant le séparateur chars, le séparateur chars, et ce qui est après le séparateur chars.
    chars peut avoir plusieurs caractères
    partition() renvoie un triplet.

    ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'au clair de la lune'.partition('ir d')[0]
    est 'au cla'

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'au clair de la lune'.partition('ir d')[1]
    est 'ir d'

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'au clair de la lune'.partition('ir d')[2]
    est 'e la lune'



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ' alert TCP any UDP home_net (msg : "bonjour le monde", port : 5123) '.partition('(')[2]
    est 'msg : "bonjour le monde", port : 5123) '

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut Split()
    J'ai trouve la commande split

    donc d'abord je ''split'' le signe '('

    puis dans chaque resultat je split les ' ' puis les ':'

    Etc Etc

    Ca fonctionne et c'est assez rapide ...

    Merci pour Partition - mais cela correspondait (DANS MON CAS) moins bien que split

    Si d'autres ont une idée Genial !!!

Discussions similaires

  1. SHELL : Parser une chaine de caractere
    Par dib52002 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 10/12/2010, 10h28
  2. Réponses: 3
    Dernier message: 23/04/2008, 00h17
  3. Découper une chaine de caractère
    Par AnkyFive dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 03/10/2006, 12h32
  4. decouper une chaine de caracteres en mots
    Par cyclone3 dans le forum C++
    Réponses: 4
    Dernier message: 08/06/2006, 17h52
  5. decouper une chaine de caractere
    Par tibobao dans le forum ASP
    Réponses: 4
    Dernier message: 06/12/2004, 12h26

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