regex Python正则表达式:按分隔符从右向左搜索,然后在分隔符的左半部分从右向左搜索

j5fpnvbx  于 2023-03-13  发布在  Python
关注(0)|答案(1)|浏览(142)

示例:

aaa_bbb_ /xyz=uvw,ccc=height:18y,weight:1xb,ddd=19d

最终目标是将其解析到字典中:

{'aaa_bbb_ /xyz':'uvw','ccc':'height:18y,weight:1xb','ddd':19d}

规则是:
从右开始搜索“=”,按“="拆分,在“=”号左边搜索“”,再从右向左搜索,“”和“=”之间的内容为关键字:'ddd',“=”右边的内容为值:“19d”。
完成此操作后,在字符串的其余部分重复该步骤

aaa_bbb_/xyz=uvw,ccc=height:18y,weight:1xb

字符串至少包含一个键:值对。字符,以及几乎所有特殊字符都可以存在于值中,如示例所示。

koaltpgm

koaltpgm1#

你可以试试这个:

import re

s = "aaa_bbb_ /xyz=uvw,ccc=height:18y,weight:1xb,ddd=19d"
res = re.findall(r"(.*?)=(.*?)(?:,|$)", s[::-1])
d = {k[::-1] : v[::-1] for v, k in res}
print(d)

它给出:

{'ddd': '19d', 'ccc': 'height:18y,weight:1xb', 'aaa_bbb_ /xyz': 'uvw'}

相关问题