Я пытаюсь извлечь имя файла с помощью regex. Имена файлов находятся в списке files
, шаблон, который должен быть сопоставлен songTitle
.Python regex не соответствует
files = listdir(curdir)
print("Pattern : %s" % songTitle)
for songs in files:
print(songs)
re_found = re.match(re.escape(songTitle) + r'.*\.mp3$', songs)
if re_found:
FileName = re_found.group()
print(FileName)
break
В этом примере
files
содержит:
['.DS_Store', '__init__.py', 'command_line.py', "Skrillex & Diplo - 'Mind' feat. Kai (Official Video)-fDrTbLXHKu8.mp3"]
songTitle
(шаблон, чтобы быть согласованы): Skrillex & Diplo - 'Mind' feat. Kai (Official Video)
Выход:
Pattern : Jack Ü - Take Ü There feat. Kiesza [OFFICIAL VIDEO]
.DS_Store
__init__.py
command_line.py
Jack Ü - Take Ü There feat. Kiesza [OFFICIAL VIDEO]-C9slkeFXogU.mp3
Skrillex & Diplo - 'Mind' feat. Kai (Official Video)-fDrTbLXHKu8.mp3
EDIT:
Я провел несколько тестов и понял, что проблема возникает из-за символов не ascii. Например, «Ü» в этом случае.
Подождите, так что этот вопрос? – MooingRawr
Да, я не вижу здесь никакой ошибки. Он говорит, что это не подходит, но выглядит хорошо. – Bharel
Используйте 'if re_found:', а не 'if match! = None:' –