在西文數字的表示中,很多格式是類似這樣:123,456,789。如果得到這樣的一個字元串,直接用int轉換成整型肯定報錯,那麼在格式轉換前需要先去除數字之間的逗号 。如果字元串隻有數字和“,”,那麼可以用一個replace替換。
例如:
>>> n = '123,456,789'
>>> n1 = n.replace(',','')
>>> print n1
123456789
但是,如果當字元串中包括數字和其他字元,replace替換就有點霸道了。例如:Today is Sunday, I bought $ 100,000. 直接用replace替換會把字元串中的逗号标點符号也删除了。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcukzM5IjNxUDMyETOxAjMvwlMx8CX5EDMy8CXn9Gbi9CXldWYtl2Lcdmcv5ybhhmYu5ibkN2Lc9CX6MHc0RHaiojIsJye.png)
是以需要找到 數字,數字 這種格式之前的逗号。
代碼類似如下:
import re
s = 'Today is Sunday, I bought $ 100,000.'
p = re.compile(r'\d,\d')
while 1:
m = p.search(s)
if m:
mm = m.group()
s = s.replace(mm,mm.replace(',',''))
else:
break
print s
主要就是用正規表達式判斷。