2011-05-29 3 views
1

Comment puis-je utiliser des expressions régulières pour changer cette chaîneEn utilisant des expressions régulières pour modifier une chaîne

':: 1:62 2:31 :: 3:4 4:32' 

à:

':: 1:62.0 2:31.0 :: 3:4.0 4:32.0' 

Est-il possible de le faire propre sans utiliser re.split?

+2

Vous savez que la question va dans la case des questions, non? –

+0

Est-ce que vous faites ceci parce que vous voulez que les nombres soient lancés pour flotter plus tard? Il pourrait y avoir une meilleure solution si c'est votre code qui fait le casting. – katrielalex

Répondre

4
>>> re.sub("([0-9]+:[0-9]+)", "\\1.0", ':: 1:62 2:31 :: 3:4 4:32') 
':: 1:62.0 2:31.0 :: 3:4.0 4:32.0' 

Est-ce suffisant?

+0

ouais..qui est parfait. Merci! – Nullpoet

+1

Gee, il m'a fallu un peu de grattage pour l'obtenir! Vous utilisez une référence arrière, '' \ 1'', ​​et ajoutez simplement '' .0''. – ThomasH

+0

ce n'est pas une référence arrière – unbeli

0
>>> re.sub(r'(\d)(|$)', r'\1.0\2', ':: 1:62 2:31 :: 3:4 4:32') 
':: 1:62.0 2:31.0 :: 3:4.0 4:32.0' 
Questions connexes