2014-03-31 67 views
3

我需要兩個數字更換兩個數字

15.30 396.90 => 15.30,396.90 

在PHP中,這是用來代替之間用逗號分隔空間之間的空格字符:

'/(?<=\d)\s+(?=\d)/', ',' 

如何做到這一點在Python?

+0

在'php'我會用['strtr'](http://www.php.net/manual/en/function.strtr.php)。 :P – kojiro

回答

4

有幾種方法可以做到這一點(對不起,Zen of Python)。使用哪一個取決於你的輸入:

>>> s = "15.30 396.90" 
>>> ",".join(s.split()) 
'15.30,396.90' 
>>> s.replace(" ", ",") 
'15.30,396.90' 

,或者使用re,例如,像這樣:

>>> import re 
>>> re.sub("(\d+)\s+(\d+)", r"\1,\2", s) 
'15.30,396.90' 
+1

第一種方法將用逗號替換所有空格,而不僅僅是數字之間。 –

+0

@ F.J我明白,OP沒有提供任何有關輸入內容的附加信息。謝謝。 – alecxe

+2

(小問題:Python有一些[針對不同'替換操作的優化](http://svn.python.org/view/python/trunk/Objects/stringobject.c?view=markup#l2347)使得它比'split/join'操作。) – kojiro

4

您可以在Python中使用相同的正則表達式與re module

import re 
s = '15.30 396.90' 
s = re.sub(r'(?<=\d)\s+(?=\d)', ',', s)