国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python使用re模塊實(shí)現(xiàn)信息篩選的方法

2020-02-22 23:55:31
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python使用re模塊實(shí)現(xiàn)信息篩選的方法。分享給大家供大家參考,具體如下:

背景

平時(shí)工作中,我們經(jīng)常會(huì)處理大量的元數(shù)據(jù)(Raw Data),而一般的文件編輯器只能一次查詢一個(gè)關(guān)鍵字,這就難以連續(xù)的分析元數(shù)據(jù),比如分析產(chǎn)品日志文件(log),日志可能包括很多information級(jí)別的信息,這些一般是我們不太關(guān)心的,我們主要關(guān)心的是一些特殊的調(diào)試(Debug)級(jí)別的信息,所以就有必要根據(jù)很多關(guān)鍵字篩選出來日志文件中我們所關(guān)系的信息,這樣篩選出來的日志文件不僅具有連續(xù)性,而且易讀性會(huì)非常好。

解決方案

re是Python自帶的正則表達(dá)式庫文件,為字符串的匹配篩選提供了極大的便利,本文就是利用re來進(jìn)行日志文件的信息篩選。首先,簡單來看一下re中的主要函數(shù):

1. Compile(pattern, flag):對正則表達(dá)式進(jìn)行編譯,比檢查語法的正確性。flag是編譯的標(biāo)簽,這里只介紹DOTALL,表示匹配所有的字符,包括新的行。

>>> import re>>> re.compile('[abc]+')re.compile('[abc]+')>>> re.compile(test)Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'test' is not defined>>>

2. match(): 從目標(biāo)字符串的開頭來判斷是否與正則表達(dá)式匹配,如果不匹配返回None,反之,返回匹配對象,包括起始位置,結(jié)束位置,字符串內(nèi)容

>>> import re>>> test = re.compile('[abc]+')>>> test.match('dabc')>>> test.match('babc')<_sre.SRE_Match object; span=(0, 4), match='babc'>

test是一個(gè)以a或b或c開頭的正則表達(dá)式編譯對象,而match是從目標(biāo)字符串的開頭進(jìn)行匹配,所以第一個(gè)目標(biāo)字符串“dabc”不符合正則表達(dá)式規(guī)則,所以返回None;第二個(gè)目標(biāo)字符串可以正常匹配輸出匹配對象(起始位置,匹配內(nèi)容),由于match每次都從目標(biāo)字符串的開頭進(jìn)行匹配,所以如果有匹配字符串,其開始位置始終為0.

3. search:與match功能相近,search會(huì)掃描全目標(biāo)字符串進(jìn)行正則表達(dá)式匹配。

>>> import re>>> test = re.compile('[abc]+')>>> test.search('dabc')<_sre.SRE_Match object; span=(1, 4), match='abc'>>>>

這時(shí)用search就可以匹配a,b,c開頭的字符串了

4. findall:找出目標(biāo)字符串中所有的匹配字符串,并以列表的形式返回

>>> test = re.compile('/w+@163.com')>>> test.findall(r"alvin@163.comtest1234@163.comnotvalid@gmail.com")['alvin@163.com', 'test1234@163.com']

當(dāng)然,re中還有很多其他的函數(shù)可供大家使用,大家可以去查閱python官方文檔。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临朐县| 苏州市| 门源| 西平县| 水富县| 德钦县| 神木县| 城步| 金湖县| 新邵县| 平利县| 吉木萨尔县| 忻城县| 壤塘县| 玉屏| 台东市| 镇江市| 平泉县| 阿合奇县| 五原县| 嵊州市| 金华市| 富源县| 泸溪县| 阜康市| 光泽县| 保亭| 赞皇县| 招远市| 白水县| 罗田县| 江津市| 墨玉县| 万安县| 南丰县| 商南县| 黄山市| 开平市| 华宁县| 类乌齐县| 内黄县|