2017-09-27 13 views
-3

Je travaille sur le traitement de texte et j'ai besoin de supprimer tous les tuples du texte, les tuples peuvent avoir un nombre arbitraire d'éléments (e.g.() or (1,2,3)), mais les éléments seront toujours des entiers. Quelqu'un peut-il m'aider à écrire regex pour cela, je suis vraiment nouveau pour les expressions régulières et je n'ai aucune idée de comment le faire! Cordialement, Kind Dreregex Python pour supprimer les tuples du texte

+1

Ce que vous avez essayé jusqu'à présent? –

+0

Avez-vous essayé de le résoudre vous-même en premier? – MrPyCharm

+0

Il existe de nombreuses ressources en ligne pour essayer les expressions régulières et les intégrer jusqu'à ce qu'elles répondent à vos besoins. OS n'est pas un service * "écrivez mon code pour moi" *. – SiHa

Répondre

0

Donc, vous voulez quelque chose comme ceci:

a = 'This is (1,2,3) just() a test.' 
re.sub('\([0-9,]*\)','',a) 
#'This is just a test.' 

Remarque: si tel est le cas, vous serez à gauche avec quelques espaces supplémentaires.

Pour faire face à ce que vous pouvez utiliser:

re.sub('\s+',' ',a) 
#'This is just a test.' 
0

Vous pouvez essayer ceci:

import re 
text = '(4, 5, 2), (23, 13, 100), (43, 567, 1)' 
data = re.findall("(?<=\().*?(?=\))", text) 
final_data = [tuple(map(int, tuple(re.split(",\s*", i)))) for i in data] 

Sortie:

[(4, 5, 2), (23, 13, 100), (43, 567, 1)]