2009-05-27 7 views
2

Je cherche à accomplir ce qui suit et je me demande si quelqu'un a une suggestion sur la meilleure façon de s'y prendre.Comment faire pour convertir des séquences de caractères spécifiques dans une chaîne en majuscules en utilisant Python?

J'ai une chaîne, disons 'this-is, -toronto.-et-this-is, -boston', et je voudrais convertir toutes les occurrences de ', - [az]' en ', - [ AZ] '. Dans ce cas, le résultat de la conversion serait «this-is, -Toronto.-et-ce-est,« Boston ».

J'ai essayé d'obtenir quelque chose de travailler avec re.sub(), mais encore ont pas compris comment comment

testString = 'this-is,-toronto.-and-this-is,-boston' 
re.sub(r',_([a-z])', r',_??', testString) 

Merci!

Répondre

11

re.sub peut prendre une fonction qui retourne la chaîne de remplacement:

import re 

s = 'this-is,-toronto.-and-this-is,-boston' 
t = re.sub(',-[a-z]', lambda x: x.group(0).upper(), s) 
print t 

impressions

this-is,-Toronto.-and-this-is,-Boston 
+0

+1, me battre pour elle :) mine correspondait au mot entier et appelé x.group (0) .capitalize, mais le vôtre fonctionne de la même manière et peut être plus rapide. – dwc

+0

Merci les gars! Appréciez l'aide! – Matty

Questions connexes