python - 使用键表达式解析字符串
问题描述
我正在尝试解析具有这种格式的字符串:
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'
适用于第二个示例。如何避免检索引号并获取与每个值关联的完整字符串?提前致谢。
解决方案
这将返回""
给定键之后的所有内容。
import re
def get_value(key, string):
return re.search(f'{key} *= *"(.*?)"', string).group(1)
添加一些错误处理,使其更加健壮。
推荐阅读
- reactjs - formik ui 验证材料 ui 反应单选按钮
- sql - 从 SQL 中许多列名中具有最高值的前 2 个列名中生成二进制值
- python - python中的分区字符串并获取冒号前的所有值
- vue.js - 如何检查 Nuxt.js SSR 中的 api 状态?
- javascript - 第一次单击元素不起作用,第二次单击起作用
- reactjs - 如何在 React 中切换到旧版本?
- python - 热力循环,从 T2/T1 中找到一个比率
- python - 如何安装 PyQt5?
- javascript - 如何改进这个基本的秒表?
- javascript - 如何使用nodejs javascript创建带附件的多部分/表单数据请求