Я пытаюсь захватить первую группу символов перед одним или несколькими подчеркиваниями или тире в строке, используя re.sub
в Python 3.7. Моя текущая функция:
re.sub(r'(\w+)[-_]?.*', r'\1', x)
.
Пример строки:
x = 'CAM14_20190417121301_000'
x = 'CAM16-20190417121301_000'
Фактический объем производства:
CAM14_20190417121301_000
CAM16
Желаемый вывод:
CAM14
CAM16
Почему это работает, когда после первой группы есть тире, но не подчеркивание? Я также пытался re.sub(r'(\w+)_?.*', r'\1', x)
попытаться заставить его поймать подчеркивание, но это вернуло тот же результат. Я хотел бы, чтобы код был достаточно гибким, чтобы поймать либо.