Я должен найти и заменить шаблон следующим условием:
если в строке обнаружена строка «y = 2» и если ей предшествует или не предшествует «x =», то следует заменить соответствующую строку «y = 2» на «x = 1 y = 2». Я пытаюсь со следующим
line="hello x=7 y=2"
m = re.search(r"((?<=x=\d\s)|(?<!x=\d\s))y=2", line)
if m:
s = "x=1 " + m.group(0)
line = re.sub(m.group(0), s, line)
print line
Я получаю вывод как привет x = 7 x = 1 год = 2 , что отличается от моего ожидаемого результата: привет x = 1 год = 2
Как получить весь шаблон, включая выражение lookbehind, в виде совпадающей строки? Это решит мою проблему.
m.group(0) always print y=1, and m.group(1) prints nothing
Я хочу, чтобы в этой строке была вся строка "x = 7 y = 1", чтобы подстановка работала правильно