首页 > 解决方案 > 如何使用 python 正则表达式将字符串转换为字典

问题描述

字符串格式是这样的<000001|ABC=123|DEF=456|~GHI=TEST|JKL=O1234_ABC.pdf> 输出格式应该是这样的{'ABC': '123', 'DEF': '456', '~GHI': 'TEST', 'JKL': 'O1234_ABC.pdf'}

我写了这个:groups = re.findall(r'(\w+)=(.*?)', line),但它没有得到最后一个元素。

标签: pythonregex

解决方案


\w只匹配字母、数字和下划线,不匹配~or .

您应该使用匹配除定界符之外的任何内容的模式:<在开头、|项目=之间、名称和值之间以及>结尾。

re.findall(r'([^<=|>]+)=([^<|>]+)', line)

推荐阅读