【发布时间】:2015-05-12 16:12:55
【问题描述】:
我已经有一段时间了,我正在尝试从中提取一些值 使用 re.findall 的多行文本中的字符串模式没有运气。
文本:
RX[0]
qpn : 0x48
cqn : 0x80
rxBytes : 179531811
rxPackets : 296242
rxPacketsDropped : 0
rxCheckSumOk : 225257
rxCheckSumNone : 200
RX[1]
qpn : 0x49
cqn : 0x81
rxBytes : 0
rxPackets : 0
rxPacketsDropped : 0
rxCheckSumOk : 0
rxCheckSumNone : 0**
我需要提取索引 -> RX[index]
和rxPackets : value
如果我拆分为我无法使用的部分 -
re.findall('RX\[(\d+)\].*rxPackets\s*:\s*(\d+)', section, re.DOTALL)
但我希望使用单个正则表达式模式来做到这一点。 谁能帮我解释一下如何做到这一点?
【问题讨论】:
-
我怀疑 findall 会返回一个包含所有实例的列表。您只需索引列表即可找到(例如)您想要的 rxPackets
-
它返回一个列表,其中包含 1 个元素、第一个索引和最后一个 rxPackets 值。
标签: python regex string findall