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

Python-在字符组之间匹配字符的所有重复,python,regex,char,grouping,substitution,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|use

我对下面最好描述的正则表达式有一个小问题:

原始字符串是:

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

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

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

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

我们正在寻找一个
=
,然后捕获到下一个分隔符(其中一个
{124;}
),以便跳过后续的
=
符号

你能描述一下替代品的作用吗?很难比较这两个字符串并找出所有差异。为什么在版本之前删除了
符号?很抱歉,我在代码中犯了一些错误。现在是我需要的。总而言之,我需要在{{124; chars之间替换第一个“=”char。您的代码将{or}或{124;后跟一个=符号,然后再后跟{or}或{124;或{or}或{or}或|@Avinash Raj exat替换为我需要做的事情