根據RE匹配括號中的數據我想使用Python來基於匹配的文本應用程序日誌中獲取數據的節。一個僞示例看起來像這樣:試圖在glob的蟒蛇
Error_Paragraph = [
data1 = 'abcdefg'
data2 = '123556'
data3 = 'supercalifragilistic'
data4 = 'expealadocious'
....
data106 = 'critical info'
....
]
這些日誌中有很多節...都帶有「data106」類型標識符。只抓取匹配「Error_Paragraph」的節的最佳方法是什麼?這將是有益的抓住整個段落,但我特別只在「Error_Paragraph」尋找「data106」
我已經嘗試了幾次迭代這個,但似乎無法正確吸入段落。真正好的東西是將這些全部吸收到字典中,以便我可以根據需要訪問這些項目。
謝謝!目前嘗試的
例子:
import re
import gzip
import sys
f = gzip.open(sys.argv[1], 'rb')
dataDict = re.findall(r"Error_Paragraph = \[[^\]]*data106 = '([^']*)'", s)
print dataDict
我得到以下輸出:
File "./logfile.txt", line 10
dataDict = re.findall(f"^\$Error_Paragraph = \[[^\]]*data106 = '([^']*)'", s)
'findall'在案,以返回任何團體或'tuple's(其中'tuple's將包含多個組)的列表。輸出看起來可能是某種錯誤。這是確切的輸出;沒有別的了嗎?什麼是's'?你的代碼使用它,但它沒有在你共享的代碼中的任何地方定義。 – jpmc26
另外,文本是否可以包含方括號('[]')? – jpmc26
輸出看起來像是錯誤回溯的一部分。請發佈完整的回溯。 –