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!
3 Réponses :
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('"')
Essayez d'utiliser findall:
like this
Output:
import re
message = 'something "like this" thank you'
print(re.findall('"(\D+)"',message)[0])
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)
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.