新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python怎么找出所有的數(shù)字?
python中獲取字符串中所有數(shù)字的方法:

創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報價,主機托管價格性價比高,為金融證券行業(yè)服務(wù)器機柜租賃,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。
1、使用正則表達式獲取
# -*- coding: cp936 -*- import re string="A1.45,b5,6.45,8.82" print re.findall(r"\d+\.?\d*",string) # ['1.45', '5', '6.45', '8.82']
代碼編寫思路:
既然是提取數(shù)字,那么數(shù)字的形式一般是:整數(shù),小數(shù),整數(shù)加小數(shù);所以一般是形如:—-.—–;
根據(jù)上述正則表達式的含義,可寫出如下的表達式:”\d+.?\d*”;
\d+ 匹配1次或者多次數(shù)字,注意這里不要寫成*,因為即便是小數(shù),小數(shù)點之前也得有一個數(shù)字;
\.? 這個是匹配小數(shù)點的,可能有,也可能沒有;
\d* 這個是匹配小數(shù)點之后的數(shù)字的,所以是0個或者多個;
2、通過循環(huán)遍歷字符串來獲取字符串中所有數(shù)字
s = "dede323frf54de23" l = len(s) numbers = [] i = 0 while i < l: num = '' symbol = s[i] while '0' <= symbol <= '9': # symbol.isdigit() num += symbol i += 1 if i < l: symbol = s[i] else: break i += 1 if num != '': numbers.append(int(num)) print(numbers)
輸出結(jié)果如下:
[323, 54, 23]
當前標題:創(chuàng)新互聯(lián)Python教程:python怎么找出所有的數(shù)字?
本文URL:http://www.dlmjj.cn/article/djipddp.html


咨詢
建站咨詢
