Как заменить все % из строки, за которыми не следует s?

Допустим есть строка: "Johny was going to %s to buy goods with 20% discount"

Из этой строчки мне нужно заменить процент на %%, но %s оставить без изменений. Делается это для форматирования строк, по такому типу:

a = "Johny was going to %s to buy goods with 20% discount"
print(a % 'store')

P.S Я знаю о форматировании вида f"", и string.format(*args, **kwargs), в данном случае нужно провести замену % для запроса MySQL, и тут нельзя использовать другие виды форматирования, кроме обычного %


Ответы (1 шт):

Автор решения: extrn

Наличие s после % - не очень надежный критерий

WHERE column_name like '%some_string%'

Но все же если это именно то, что вам нужно

print(re.sub('%(?!s)', '%%', '%s%d% %s %d %')) # %s%%d%% %s %%d %%
→ Ссылка