Например. скажем, у вас есть строка:
`Here's an example.` And another example.
Как вы могли бы изменить Только во втором «примере» на верхний регистр? Например:
`Here's an example.` And another EXAMPLE.
Нет (какая-то ерунда, чтобы добраться до необходимого количества символов, чтобы разрешить нет в качестве комментария)
Вы можете разделить по обратной галочке, а затем сделать замену в четных проиндексированных фрагментах:
s = "`Here's an example.` And another example."
res = "`".join(part if i % 2 else part.replace("example", "EXAMPLE")
for i, part in enumerate(s.split("`"))
)
Или, с регулярным выражением, вы можете смотреть вперед и делать замену только тогда, когда количество обратных кавычек, следующих за ним, четно:
import re
s = "`Here's an example.` And another example."
res = re.sub(r"\bexample\b(?=([^`]*`[^`]*`)*[^`]*$)", "EXAMPLE", s)
Здорово, что есть два примера. Мне нравится первый пример - намного проще понять!
Вам также нужно обрабатывать экранированные обратные кавычки?