精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

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

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

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

但大括號中的數據又只有部分固定位是我所需要的。

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

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

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

這樣做的是因為這段數據并不在行首,且數據前面有一長串的打印信息,并不方便直接使用re.match,因此先使用re.findall將所有符合該pattern的數據提取出來,再使用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 = '...'   #匹配大括號和數據的正則表達式
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 = '...'   #帶有( )的正則表達式,匹配固定位數據
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()

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

作為新手,寫的很簡易。能不能把這兩個步驟集成到一個python腳本中?有沒有更便捷的實現方法?還需要繼續學習、思考。


審核編輯:湯梓紅


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84453
  • 腳本
    +關注

    關注

    1

    文章

    387

    瀏覽量

    14831

原文標題:日常 - re.findall 和 re.match 的簡單使用

文章出處:【微信號:小杜的芯片驗證日記,微信公眾號:小杜的芯片驗證日記】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    python實現網頁爬蟲爬取圖片

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

    Python面試必看的10個問題

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

    利用Python實現簡單圖片下載功能

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

    初識 Python 正則表達式

    風格的正則表達式模式。re 模塊使 Python 語言擁有全部的正則表達式功能。下面通過實例,一步一步來初步認識正則表達式。比如在一段字符串尋找是否含有某個字符或某些字符,通常我們使用內置函數來實現
    發表于 03-17 16:44

    python正則表達式字符集

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

    python正則表達式數量詞

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

    python正則表達式的常用函數

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

    pythonurllib3和requests的使用

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

    索尼RE-3機芯彩電圖紙

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

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

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

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

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

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

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

    發帖主題:Re:Колибри0.7.0

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

    Python的十個安全陷阱(二)

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

    輻射RE整改有哪些方法?

    輻射RE整改有哪些方法?|深圳比創達電子EMC
    的頭像 發表于 10-31 10:57 ?1646次閱讀
    輻射<b class='flag-5'>RE</b>整改有哪些方法?