用字符串中的'=='替换'='

EEP*_*EEP 0 python regex string

我有一个字符串'x = 1',我希望能够替换单个'='字符的所有出现'=='.但是,如果给出字符串,'x == 1'我想保持原样.字符串也不能完美地格式化,'x =1' '1=x' and 'x= 1'都是有效的输入.

我无法使用,string.replace('=', '==')因为它会将'x == 1'字符串转换为'x ==== 1'

我尝试使用正则表达式并向前看,re.sub(r'=(?!=)', '==', string)但是对于'x == 1'它产生的字符串'x === 1',因为前瞻不会消耗第二个=所以正则表达式在忽略第一个=之后继续查找并替换它.

有谁知道解决这个问题的好方法?

Roh*_*ain 5

只有负向前瞻,第二个=将满足正则表达式,并将被替换为==.

你必须同时使用前瞻和后瞻:

re.sub(r'(?<!=)=(?!=)', '==', string)
Run Code Online (Sandbox Code Playgroud)