Как удалить две «подчеркивания-числовые» подстроки из строки с помощью регулярных выражений в Python? - PullRequest
0 голосов
/ 26 июня 2018

У меня есть список строк, похожих на geo_drill_0_10m_therm_15_15, и мне нужно удалить последние две «подстрочные-числовые» подстроки (_15 и _15).

Однако в моем списке числа имеют разную длину цифр (например, _1_14) и иногда только одну подстроку (например, _7), а иногда и ни одной.

Пока что пробовал

re.sub(r'(\d+\w?)(\d+)$', '', 'geo_drill_0_10m_therm_15_15') который, как ожидается, возвращается geo_drill_0_10m_therm_

и

re.sub(r'(\d+\w?)(\d+\w?)$', '', 'geo_drill_0_10m_therm_15_15') который я ожидал сделать работу, однако он возвращает тот же

geo_drill_0_10m_therm_

Любые идеи, как избавиться от последних "_" с помощью регулярного выражения или даже другого решения без регулярного выражения. Заранее спасибо.

1 Ответ

0 голосов
/ 26 июня 2018

Чтобы удалить любое количество цифр _ и 1+ в конце строки, вы можете использовать

re.sub(r'(?:_\d+)+$', '', s)

См. Демоверсию regex

Чтобы удалить только 1 или 2 вхождения _<digits> в конце, замените + ограничивающим квантификатором

r'(?:_\d+){1,2}$'

Настройте минимальное и максимальное значения по своему усмотрению.

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