首页 > 解决方案 > 使用键表达式解析字符串

问题描述

我正在尝试解析具有这种格式的字符串:

sample = '<STATUS="OK" VERSION="B" MESSAGE="Connected in demo mode"><timestamp="1602765370" id="123">'

这样给定一个键,我就可以获得关联的值,例如:

parser('STATUS', sample)  # 'OK'
parser('MESSAGE', sample) # 'Connected in demo mode'

我试过使用 re:

import re
def parser(key, string):
    return re.search(f'(?<={key}=)\S+', string).group()

但结果'"OK"'适用于第一个示例,仅'"Connected'适用于第二个示例。如何避免检索引号并获取与每个值关联的完整字符串?提前致谢。

标签: pythonpython-3.xparsingre

解决方案


这将返回""给定键之后的所有内容。

import re

def get_value(key, string):
    return re.search(f'{key} *= *"(.*?)"', string).group(1)

添加一些错误处理,使其更加健壮。


推荐阅读