使用Regex获取python中的值

2024-04-25 21:47:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我将此输出与命令分开:

    Check_mk version 1.2.2p2

radwin_rssi          WARN - Device received signal strength indication is -69  (rssi=-69;-50;-85;;)

radwin_uas           OK - Device uas is 0                                     (uas=0;;;;)

radwin_uptime        OK - up since Sun Jan  5 15:17:15 2014 (199d 02:29:13)   (uptime=17202553;;;;)

我必须得到每行的最后一个值,仅包含在()之间。

例如,第1行中没有任何内容,因为没有()括号。你知道吗

同样地,第2行也有空行。你知道吗

对于第3行,我应该得到rssi=-69;-50;-85;;,它包含在()括号中。你知道吗

同样地,对于最后一行,我不应该得到199d02:29:13,而是正常运行时间=17202553;;;(当然)

如何在python中做到这一点??你知道吗


Tags: 命令signalisversiondevicecheckokuas
1条回答
网友
1楼 · 发布于 2024-04-25 21:47:24

使用向前看和向后看

(?<=\()[^)]*(?=\)$)

DEMO

>>> import re
>>> s = """
... Check_mk version 1.2.2p2
... 
... radwin_rssi          WARN - Device received signal strength indication is -69  (rssi=-69;-50;-85;;)
... 
... radwin_uas           OK - Device uas is 0                                     (uas=0;;;;)
... 
... radwin_uptime        OK - up since Sun Jan  5 15:17:15 2014 (199d 02:29:13)   (uptime=17202553;;;;)"""
>>> m = re.findall(r'(?<=\()[^)]*(?=\))', s)
>>> m
['rssi=-69;-50;-85;;', 'uas=0;;;;', 'uptime=17202553;;;;']

相关问题 更多 >