2
votes

Supprimer les caractères en dehors des guillemets python

Comment supprimer tous les caractères hors guillemets par exemple voici ma chaîne

message = 'something "like" this'
print( removeFromQuote(message)  )


message2 = 'something "like this" thank you!'
print( removeFromQuote(message2)  )

puis le résultat:

comme

comme ça

comment créer une fonction removeFromQuote qui peut le faire.

ou en utilisant re.sub avec la bonne regex

merci d'avance!


4 commentaires

je l'ai déjà fait mais je ne trouve pas la bonne regex à implémenter.


Vous avez accepté cette réponse? Pourquoi? Aucune offense mais ce n'est pas du tout une bonne solution.


désolé, la réponse est bonne et correcte pour moi. mais j'ai préféré la manipulation de chaîne de manière native sans importation, c'est le meilleur bien que l'importation d'une bibliothèque reste une bonne solution.


Je vois. Aucun problème.


3 Réponses :


1
votes

Commencez par diviser la chaîne entre guillemets.

def removeFromQuote(text):
    return "".join(text.split('"')[1::2])

Les éléments de la liste qui sont des morceaux de texte à l'intérieur des guillemets sont les éléments impairs. Alors récupérez-les.

result = "".join(odd_chunks)

Regroupez maintenant la liste en une chaîne.

odd_chunks = chunks[1::2]

Pour rassembler tout cela:

message = 'something "like" this'
chunks = message.split('"')


0 commentaires

4
votes

Essayez d'utiliser findall:

like this

Output:

import re
message = 'something "like this" thank you'
print(re.findall('"(\D+)"',message)[0])


0 commentaires

1
votes

Vous pouvez utiliser des expressions régulières:

>>> message = 'something "like this" or "like that"'
>>> removeFromQuote(message)
['like this', 'like that']

Voici le résultat:

import re


def removeFromQuote(message):
    return re.findall(r'"(.+?)"', message)


0 commentaires