色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python中re.findall和re.match的使用

我快閉嘴 ? 來源:小杜的芯片驗(yàn)證日記 ? 作者:小杜的芯片驗(yàn)證日 ? 2022-09-15 09:18 ? 次閱讀

小杜今天需要從run.log中提取一些關(guān)鍵信息,又一次使用到了python的re.findall和re.match,也有了一點(diǎn)新的收獲。隨意寫一點(diǎn),當(dāng)作記錄。

我的具體使用場景是需要從數(shù)千行的run.log文件中提取出大括號(hào) { } 中包住的數(shù)據(jù),數(shù)據(jù)有很多個(gè),但格式都很固定,為 ‘hx 或 ‘hxx 的形式,每個(gè)數(shù)據(jù)由一個(gè)逗號(hào)和空格隔開,即:

{'hx, 'hx, 'hxx, 'hx, 'hxx, 'hxx, ...}

但大括號(hào)中的數(shù)據(jù)又只有部分固定位是我所需要的。

作為python腳本初學(xué)者,我目前的解決方法是先把大括號(hào)和其中的數(shù)據(jù)提取出來,再使用正則表達(dá)式的group將所需的固定位數(shù)據(jù)提取出來。

  • re.findall - 在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個(gè)列表,如果有多個(gè)匹配模式,則返回元組列表,如果沒有找到匹配的,則返回空列表。

  • re.match - 嘗試從字符串的起始位置匹配,如果模式在字符串中間,則不會(huì)匹配成功,match( ) 返回None。

這樣做的是因?yàn)檫@段數(shù)據(jù)并不在行首,且數(shù)據(jù)前面有一長串的打印信息,并不方便直接使用re.match,因此先使用re.findall將所有符合該pattern的數(shù)據(jù)提取出來,再使用re.match配合group提取固定位信息就方便許多(正則好寫很多)。下面是我的兩段python腳本:

import osimport reimport string
file_input = 'path/run.log'file_output = 'path/xxx1.dat'fi = open(file_input, 'r')fo = open(file_output, 'w')
pattern = '...'   #匹配大括號(hào)和數(shù)據(jù)的正則表達(dá)式
for line in f1.readlines():  data = re.findall(pattern, line)  fo.write(data)  fo.write('
')
fi.close()fo.close()
import osimport reimport string
file_input = 'path/xxx1.dat'file_output = 'path/xxx2.dat'fi = open(file_input, 'r')fo = open(file_output, 'w')
pattern = '...'   #帶有( )的正則表達(dá)式,匹配固定位數(shù)據(jù)
for line in f1.readlines():  data1 = re.match(pattern, line).group(1)  data2 = re.match(pattern, line).group(3)  data3 = re.match(pattern, line).group(5)  fo.write(data1)  fo.write(data2)  fo.write(data3)  fo.write('
')
fi.close()fo.close()

這樣通過連續(xù)運(yùn)行2次python腳本,再合理使用write( ),就可以提取出我需要的固定位數(shù)據(jù),并且以我需要的格式寫入到輸出的目標(biāo)文件中。

作為新手,寫的很簡易。能不能把這兩個(gè)步驟集成到一個(gè)python腳本中?有沒有更便捷的實(shí)現(xiàn)方法?還需要繼續(xù)學(xué)習(xí)、思考。


審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4798

    瀏覽量

    84800
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    391

    瀏覽量

    14889

原文標(biāo)題:日常 - re.findall 和 re.match 的簡單使用

文章出處:【微信號(hào):小杜的芯片驗(yàn)證日記,微信公眾號(hào):小杜的芯片驗(yàn)證日記】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    python實(shí)現(xiàn)網(wǎng)頁爬蟲爬取圖片

    re.compile() 可以把正則表達(dá)式編譯成一個(gè)正則表達(dá)式對(duì)象.re.findall() 方法讀取html 包含 imgre(正則表達(dá)式)的數(shù)據(jù)。運(yùn)行腳本將得到整個(gè)頁面包含圖
    發(fā)表于 04-05 15:32

    Python面試必看的10個(gè)問題

    的復(fù)制它所包含的對(duì)象(修改其中一個(gè),另外一個(gè)不會(huì)改變){copy模塊的deep.deepcopy()函數(shù)}2、Python里面match()和search()的區(qū)別?答:re模塊
    發(fā)表于 02-28 17:00

    利用Python實(shí)現(xiàn)簡單圖片下載功能

    ; pic_ext' imgre = re.compile(reg) imglist = re.findall(imgre,html) return imglisthtml = getHtml("
    發(fā)表于 09-04 13:49

    初識(shí) Python 正則表達(dá)式

    風(fēng)格的正則表達(dá)式模式。re 模塊使 Python 語言擁有全部的正則表達(dá)式功能。下面通過實(shí)例,一步一步來初步認(rèn)識(shí)正則表達(dá)式。比如在一段字符串尋找是否含有某個(gè)字符或某些字符,通常我們使用內(nèi)置函數(shù)來實(shí)現(xiàn)
    發(fā)表于 03-17 16:44

    python正則表達(dá)式字符集

    = re.findall('u[abc]v', a)print(findall)# 如果是連續(xù)的字母,數(shù)字可以使用 - 來代替l = re.findall('u[a-c]v', a)print(l)# 取
    發(fā)表于 03-17 16:48

    python正則表達(dá)式數(shù)量詞

    = 'java*&39android##@@python'# 數(shù)量詞findall = re.findall('[a-z]{4,7}', a)print(findall)輸出結(jié)果:[
    發(fā)表于 03-18 16:05

    python正則表達(dá)式的常用函數(shù)

    string還有剩余字符,仍然視為成功。格式:re.match(pattern, string[, flags=0])print(re.match('com','comwww.csdn').group
    發(fā)表于 03-18 16:12

    pythonurllib3和requests的使用

    ; % res.status)# 獲取響應(yīng)內(nèi)容data = res.data.decode("utf-8")# 正則解析并輸出print(re.findall("(.*?)"
    發(fā)表于 03-21 16:08

    索尼RE-3機(jī)芯彩電圖紙

    索尼RE-3機(jī)芯彩電圖紙
    發(fā)表于 01-24 17:30 ?97次下載
    索尼<b class='flag-5'>RE</b>-3機(jī)芯彩電圖紙

    RE46C114 RE46C114是一種電離煙霧探測器AFE

    電子發(fā)燒友網(wǎng)為你提供()RE46C114相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有RE46C114的引腳圖、接線圖、封裝手冊、中文資料、英文資料,RE46C114真值表,RE46C114管腳等資料,
    發(fā)表于 04-18 23:13

    RE46C112 RE46C112是一種電離煙霧探測器AFE

    電子發(fā)燒友網(wǎng)為你提供()RE46C112相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有RE46C112的引腳圖、接線圖、封裝手冊、中文資料、英文資料,RE46C112真值表,RE46C112管腳等資料,
    發(fā)表于 04-18 23:13

    帖子主題:Re:Колибрипрограммированияпрограммирования

    帖子主題:Re:Колибрипрограммированияпрограммирования
    發(fā)表于 05-07 16:47 ?0次下載
    帖子主題:<b class='flag-5'>Re</b>:Колибрипрограммированияпрограммирования

    發(fā)帖主題:Re:Колибри0.7.0

    發(fā)帖主題:Re:Колибри0.7.0
    發(fā)表于 06-08 19:08 ?2次下載
    發(fā)帖主題:<b class='flag-5'>Re</b>:Колибри0.7.0

    Python的十個(gè)安全陷阱(二)

    惡意字符串。在 Python re.matchre.search 之間有著細(xì)微的區(qū)別,我們將在下面的代碼片段中演示。
    的頭像 發(fā)表于 03-24 16:47 ?1438次閱讀

    EMC輻射發(fā)射RE整改方法

    EMC輻射發(fā)射RE整改方法
    的頭像 發(fā)表于 12-14 10:09 ?1418次閱讀
    EMC輻射發(fā)射<b class='flag-5'>RE</b>整改方法
    主站蜘蛛池模板: 女人张开腿让男人桶爽免| 国产在线精品亚洲| 国产精品一区二区在线观看 | 亚洲高清无码在线 视频| 北条麻妃夫の友人196| 久久综合狠狠综合狠狠| 亚洲欧美一区二区三区九九九 | 99久久免费热在线精品| 麻豆成人啪啪色婷婷久久| 早乙女由依在线观看| 精品人妻无码一区二区三区蜜桃臀 | 无毒成人社区| 国产成人拍精品免费视频爱情岛| 青青精品视频国产| xart欧美一区在线播放| 欧美黑人巨大videos免费| 99视频国产热精品视频| 欧美高清另类video| vivoe另类| 色老板美国在线观看| 国产精品久久毛片A片软件爽爽| 双腿打开揉弄高潮H苏安安秦慕深| 国产 亚洲 另类 欧美 在线| 无人区乱码区1卡2卡三卡在线| 国产女高清在线看免费观看| 亚洲 综合 欧美在线视频| 国模玲玲自拍337p| 伊人激情综合网| 蜜芽tv在线观看免费网站| www国产av偷拍在线播放| 色哟哟tv| 户外插BBBBB| 中文字幕在线视频观看| 欧美极限扩肛| 国产精品1卡二卡三卡四卡乱码 | 日本妈妈xxxx| 国产看午夜精品理论片| 一二三四免费中文在线1| 免费A级毛片无码无遮挡| 潮 喷女王cytherea| 性直播免费|