Python - 匹配字符组之间的所有char重复

时间:2014-07-03 08:07:25

标签: python regex char grouping substitution

我对下面描述的正则表达式有一点问题:

原始字符串是:

{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)

很明显它不起作用!有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这至少适用于给定的例子:

re.sub(r'=([^{|}]*)', r':\1', s)

我们正在寻找=,然后捕捉到下一个分隔符({|}之一),以便跳过后续=个符号。