我在下面最好描述的正则表达式中遇到了一个小问题:
原始字符串为:
{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)
我们正在寻找一个
=
,然后捕获到下一个定界符({|}
之一),以跳过后续的=
符号。