У меня есть строка:
x = "abc/xyz/foo/bar/foobar.mp3"
Как извлечь из него foobar?
Я сделал это следующим образом:
import re
re.search(r'/[a-z]+.mp3', x)
Хотя я не знаю, как извлечь совпадающую строку без '.' и без '.mp3'.
Я не хочу делать разделения Python, rplist, разделы и т. д., поскольку это добавляет дополнительные функции. Я хочу, чтобы это было как можно проще и короче.
Обновлено:
(это дубликат, если предположить, что это путь к файлу. Учитывая .mp3
, я думаю, что это так)
x.split("/")[-1].split(".")[0]
Сопоставьте символы без косой черты, а затем посмотрите вперед для \.mp3$
:
re.search(r'[^/]+(?=\.mp3$)', x)
Обязательно экранируйте .
обратной косой чертой, иначе он будет соответствовать любому символу.
print(os.path.splitext(os.path.basename(x)))
?