我对下面描述的正则表达式有一点问题:
原始字符串是:
{reply_to={message_type=login}|login_id=pippo|user_description=pippo=pluto|version=2013.2.1|utc_offset=7200|login_date=2014-07-03|login_time=09:43:02|error=0}
这是我想要获得的:
{reply_to:{message_type:login}|login_id:pippo|user_description:pippo=pluto|version:2013.2.1|utc_offset:7200|login_date:2014-07-03|login_time:09:43:02|error:0}
如果钥匙的价值中也有“=”,我就无法替代它。
我试图做的是匹配并替换分组一组字符:
re.sub(r'([\{\}\|])=([\{\}\|])',r'\1":"\2',modOutput)
很明显它不起作用!有什么想法吗?
答案 0 :(得分:1)
这至少适用于给定的例子:
re.sub(r'=([^{|}]*)', r':\1', s)
我们正在寻找=
,然后捕捉到下一个分隔符({|}
之一),以便跳过后续=
个符号。