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 :

Séléctionner une sous-chaine entre 2 guillemets


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Tornade8912
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut Séléctionner une sous-chaine entre 2 guillemets
    Bonjour,
    Je voudrai récupérer une chaine dans une autre. Voici la chaine de base : "Bonjour tout le \"monde\"".
    J'utilise bien sur les antislash pour mettre des double quote dans une chaine. La chaine que je veux récupérer est : "monde". Donc en fait si
    vous avez compris je veux récupérer les caractères présents entre les 2 double quotes. Une sous chaine quoi.

    Cordialement

  2. #2
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Bonjour

    si le problème n'est pas plus général tu peux faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> chaine = "Bonjour tout le \"monde\""
    >>> chaine
    'Bonjour tout le "monde"'
    >>> chaine.split('"')[1]
    'monde'
    et si plusieurs sous-chaines entre double-quotes sont présentes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> chaine = "Bonjour tout le \"monde\", j'ai dit \"le MONDE\" !"
    >>> 
    >>> sous_chaines = chaine.split('"')[1::2]
    >>> sous_chaines
    ['monde', 'le MONDE']
    Passer par des expressions régulières me semble luxueux ici.

  3. #3
    Membre actif Avatar de Tornade8912
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut
    Merci c'est génial ça fonctionne !

  4. #4
    Membre actif Avatar de Tornade8912
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut
    Ah et aussi pendant que j'y suis savez vous comment je pourrais faire pour remplacer la chaine sélectionné ?
    Par exemple dans : "Bonjour tout le \"monde\", j'ai dit \"LE MONDE\"" avec le code que vous m'avez fourni je peux retourner un tableau avec les 2 chaines. Mais je voudrais en fait remplacer ces 2 chaines par un nombre qui va s'incrémenter à chaque fois que le script va trouver une chaine.

    En gros je voudrais que ça fasse à la finalité : Bonjour tout le 1, j'ai dit 2
    Les chiffres correspondent au chaines de caractères bien sur.

    Cordialement

  5. #5
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    avec replace.

  6. #6
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Citation Envoyé par marco056 Voir le message
    avec replace.
    Ca peut le faire. Attention d'utiliser le paramètre count (à 1) car plusieurs sous-chaines peuvent être identiques.

    Et sinon, en python 2 (because division entière) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> chaine = "Bonjour tout le \"monde\", j'ai dit \"le MONDE\" ! bon sens \"MONDE\""
    >>> parties = chaine.split('"')
    >>> parties
    ['Bonjour tout le ', 'monde', ", j'ai dit ", 'le MONDE', ' ! bon sens ', 'MONDE', '']
    >>> 
    >>> ''.join([ str(e/2+1) if e % 2 else elt for e, elt in enumerate(parties) ])
    "Bonjour tout le 1, j'ai dit 2 ! bon sens 3"
    >>>

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

Discussions similaires

  1. Regex : récuperer une chaine entre deux guillemets anglais(")
    Par Phonatacid dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 01/06/2011, 11h02
  2. Réponses: 1
    Dernier message: 16/10/2010, 17h50
  3. je cherche une sous chaine dans une chaine
    Par avprive dans le forum C++
    Réponses: 3
    Dernier message: 17/03/2005, 01h48
  4. Rechercher une sous chaine dans une chaine
    Par annedjomo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/02/2005, 10h36
  5. Rechercher une sous chaine dans une chaine
    Par Oluha dans le forum ASP
    Réponses: 4
    Dernier message: 03/02/2005, 14h39

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