Python Re.sub заменить номер в строке совпадения - PullRequest
0 голосов
/ 20 декабря 2018

Замена чисел в строке после совпадения.

t = 'String_BA22_FR22_BC'
re.sub(r'FR(\d{1,})','',t)

Мой желаемый результат будет String_BA22_FR_BC

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Вы заменяете то, что соответствует (в данном случае FR22) пустой строкой.

Другой вариант - использовать положительное значение lookbehind и затем совпадать с 1+ цифрами и заменить это совпадение пустой строкой:

(?<=FR)\d+

Regex demo | Python demo

Например:

re.sub(r'(?<=FR)\d+','',t)
0 голосов
/ 20 декабря 2018

Вы можете использовать

re.sub(r'FR\d+','FR',t)

В качестве альтернативы вы можете захватить часть, которую вам нужно сохранить, с помощью группы захвата и заменить на \1 обратная ссылка :

re.sub(r'(FR)\d+', r'\1', t)
         ^--^- >>>----^

См. Демонстрационную версию Python

Групповой подход захвата является гибким, поскольку он допускает шаблоны неограниченной длины.

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