python正則表達式從字符串中提取數(shù)字的思路詳解
python從字符串中提取數(shù)字
使用正則表達式,用法如下:
## 總結(jié) ## ^ 匹配字符串的開始。 ## $ 匹配字符串的結(jié)尾。 ## \b 匹配一個單詞的邊界。 ## \d 匹配任意數(shù)字。 ## \D 匹配任意非數(shù)字字符。 ## x? 匹配一個可選的 x 字符 (換言之,它匹配 1 次或者 0 次 x 字符)。 ## x* 匹配0次或者多次 x 字符。 ## x+ 匹配1次或者多次 x 字符。 ## x{n,m} 匹配 x 字符,至少 n 次,至多 m 次。 ## (a|b|c) 要么匹配 a,要么匹配 b,要么匹配 c。 ## (x) 一般情況下表示一個記憶組 (remembered group)。你可以利用 re.search 函數(shù)返回對象的 groups() 函數(shù)獲取它的值。 ## 正則表達式中的點號通常意味著 “匹配任意單字符”
解題思路:
既然是提取數(shù)字,那么數(shù)字的形式一般是:整數(shù),小數(shù),整數(shù)加小數(shù);
所以一般是形如:----.-----;
根據(jù)上述正則表達式的含義,可寫出如下的表達式:"\d+\.?\d*";
\d+匹配1次或者多次數(shù)字,注意這里不要寫成*,因為即便是小數(shù),小數(shù)點之前也得有一個數(shù)字;\.?這個是匹配小數(shù)點的,可能有,也可能沒有;\d*這個是匹配小數(shù)點之后的數(shù)字的,所以是0個或者多個;
代碼如下:
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ù)字
例如下面的string:
tensorflow:Final best valid 0 loss=0.20478513836860657 norm_loss=0.767241849151384 roc=0.8262403011322021 pr=0.39401692152023315 calibration=0.9863265752792358 rate=0.0 提取 calibration=0.9863265752792358 . # 匹配“calibration=”后面的數(shù)字 pattern = re.compile(r'(?<=calibration=)\d+\.?\d*') pattern.findall(string) # ['0.9863265752792358']
匹配包含指定字符串開頭的數(shù)字
pattern = re.compile(r'(?:loss=)\d+\.?\d*') pattern.findall(string) # ['loss=0.20478513836860657', 'loss=0.767241849151384']
匹配時間,17:35:24
string = "WARNING:tensorflow: 20181011 15:28:39 Initialize training" pattern = re.compile(r'\d{2}:\d{2}:\d{2}') pattern.findall(string) # ['15:28:39']
匹配時間,20181011 15:28:39
string = "WARNING:tensorflow: 20181011 15:28:39 Initialize training" pattern = re.compile(r'\d{4}\d{2}\d{2}\s\d{2}:\d{2}:\d{2}') pattern.findall(string) # ['20181011 15:28:39']
總結(jié)
以上所述是小編給大家介紹的python正則表達式從字符串中提取數(shù)字的思路詳解 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對我們網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
上一篇:正則表達式去除中括號(符號)及里面包含的內(nèi)容
欄 目:正則表達式
本文標題:python正則表達式從字符串中提取數(shù)字的思路詳解
本文地址:http://mengdiqiu.com.cn/a1/zhengzebiaodashi/11153.html
您可能感興趣的文章
- 01-11正則表達式實現(xiàn)添加、刪除、替換三種功能
- 01-11python 用正則表達式篩選文本信息的實例
- 01-11正則表達式之匹配數(shù)字范圍
- 01-11python爬蟲正則表達式之處理換行符
- 01-11正則表達式匹配路由的實現(xiàn)代碼
- 01-11正則表達式截取身份證號碼加密的方法
- 01-11js正則表達式 匹配兩個特定字符間的內(nèi)容示例
- 01-11MySQL使用正則表達式進行查詢操作經(jīng)典實例總結(jié)
- 01-11python正則表達式之對號入座篇
- 01-11詳解正則表達式實現(xiàn)二代身份證號碼驗證


閱讀排行
本欄相關(guān)
- 01-11正則表達式實現(xiàn)添加、刪除、替換三
- 01-11正則表達式之匹配數(shù)字范圍
- 01-11python 用正則表達式篩選文本信息的實
- 01-11正則表達式匹配路由的實現(xiàn)代碼
- 01-11python爬蟲正則表達式之處理換行符
- 01-11js正則表達式 匹配兩個特定字符間的
- 01-11正則表達式截取身份證號碼加密的方
- 01-11python正則表達式之對號入座篇
- 01-11MySQL使用正則表達式進行查詢操作經(jīng)典
- 01-11詳解正則表達式實現(xiàn)二代身份證號碼
隨機閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10C#中split用法實例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 01-11ajax實現(xiàn)頁面的局部加載