Мне нужно обработать длинные пути, и я хотел бы игнорировать конкретные слова:
'/home/me/data/dataset/images/dark-side_23---83971436re.jpg'
'/home/me/data/dataset/images/medium-side_23---83971436re.jpg'
'/home/me/data/dataset/images/others_23---83971436re.jpg'
Таким образом, вывод должен быть:
side
side
others
Я использую это регулярное выражение:
pat = re.compile(r'/([^/]+)_\d+---.*.jpg$')
re.search(pat, path_string).groups()
И я пробовал что-то с отрицательным поиском, но не работает:
pat = re.compile(r'/(?!dark|medium)([^/]+)_\d+---.*.jpg$')
Есть идеи?
Редактировать: Извините, я забыл упомянутьчто они могут существовать в других строках, таких как:
'/home/me/data/dataset/images/light-side_23---83971436re.jpg'
Где он должен возвращаться:
light-side
Так что использование символа "-" в этом случае бесполезно.