Regex (python) исключает некоторую часть замены - PullRequest
0 голосов
/ 07 мая 2020

Конечно, есть другие способы решить эту проблему, но мне интересно, можно ли это решить исключительно с помощью регулярного выражения. У меня есть такие строки текста:

9,A
11,B
22,>
33,B
72,A
91,<
112,A
162,B

Когда я пытаюсь применить эту замену, чтобы просто «соединить» или стереть часть между стрелками и заменить их на «+++»:

re.sub(r'\>(\n\d.+)+<','+++',string_above)

Я получаю это, и это нормально:

9,A
11,B
22,+++
112,A
162,B

Но что, если вы хотите сохранить последнее число перед знаком «<» и последним словом «X», чтобы получить что-то вроде этого: </p>

9,A
11,B
22,+++
91,X
112,A
162,B

Как я могу это сделать?

1 Ответ

0 голосов
/ 07 мая 2020

В этом конкретном случае вы можете заменить на

r'+++\1X'

См. Демонстрацию регулярного выражения

Если X - это di git, замените на

r'+++\g<1>X'

\1 и \g<1> называются заменяющими обратными ссылками , они относятся к значению группы захвата # 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...