У меня есть svg с такими строками:
Я хочу удалить M, где числа после M соответствуют числам после L перед ним. У меня есть это регулярное выражение, которое, кажется, работает: https://regex101.com/r/UG2VHo/6
Однако, когда я пытаюсь удалить все эти экземпляры с помощью модуля регулярных выражений python, напечатанная строка по-прежнему включает те, которые соответствуют Ms.
import regex
with open('test-mjlr.svg','r') as svg:
data = svg.read()
r = regex.sub('L([0-9]+,[0-9]+) \KM\1','',data,flags = regex.M)
print r
Как я могу это сделать?
Вы ведь используете модуль регулярных выражений PyPi, верно? Тогда обман правильный, вам нужно использовать необработанный строковый литерал. См. rextester.com/ADXNYX34774
Кажется, \ K означает буквальное "K" в регулярном выражении Python. regex101.com/r/UG2VHo/7
Вы можете попробовать это регулярное выражение для того же эффекта. 'L (\ d *, \ d *) \ b M \ 1' и замените совпадение на 'L \ 1' regex101.com/r/UG2VHo/8






Я не могу заставить \ K работать с Python. Также я видел, что \ K поддерживается в модели регулярного выражения? stackoverflow.com/questions/39664058/…