2 回答

TA貢獻1772條經(jīng)驗 獲得超6個贊
更新
如果您堅持使用正則表達式來跟蹤失敗,您可以執(zhí)行以下操作:
for i in s.split('\n'):
number = re.findall(r'^\d+', i)
if number: failure = re.findall(r'^(\d+)\.(.*?)\s_{2,}', i)
if 'failed' in i:
print(failure)
返回:
[('9', 'TX_MULTI_VERIFICATION 2412 DSSS-1 NON_HT BW-20 TX1')]
[('11', 'TX_MULTI_VERIFICATION 2472 DSSS-1 NON_HT BW-20 TX1')]
[('12', 'TX_MULTI_VERIFICATION 2412 CCK-11 NON_HT BW-20 TX1')]
您可以在此處查看此正則表達式的一種形式。

TA貢獻2041條經(jīng)驗 獲得超4個贊
您可以使用re.split分割成多個部分,然后[failed]在每個部分中查找字符串:
splitted = re.split(r'(\d{1,2})\.(.*)(?= _{3,})', text)
failed = [(splitted[i-2], splitted[i-1]) for i, s in enumerate(splitted) if re.search(r'\[failed\]', s)]
failed
# [('9', 'TX_MULTI_VERIFICATION 2412 DSSS-1 NON_HT BW-20 TX1'),
# ('11', 'TX_MULTI_VERIFICATION 2472 DSSS-1 NON_HT BW-20 TX1'),
# ('12', 'TX_MULTI_VERIFICATION 2412 CCK-11 NON_HT BW-20 TX1')]
這里將re.split文本分成三個子組:
1. 第 1 組(部分編號)
2. 第 2 組(部分標題)
3. 第 3 組(部分正文)
如果第 3 組中存在匹配,則返回第 1 組和第 2 組 - 因此,splitted[i-2]和splitted[i-1])
添加回答
舉報