В Python я ищу способ извлечь группы регулярных выражений, используя строку и соответствующий шаблон шаблона, например:
file_path = "/101-001-015_fg01/4312x2156/101-001-015_fg01.0001.exr"
file_template = "/{CODE}_{ELEMENT}/{WIDTH}x{HEIGHT}/{CODE}_{ELEMENT}.{FRAME}.exr"
Вывод, который я ищу, следующий :
{
"CODE": "101-001-015",
"ELEMENT": "fg01",
"WIDTH": "4312",
"HEIGHT: "2156",
"FRAME": "0001"
}
Мой первоначальный подход состоял в том, чтобы отформатировать мой шаблон и найти все совпадения, но это не идеально:
import re
re_format = file_template.format(SHOT='(.*)', ELEMENT='(.*)', WIDTH='(.*)', HEIGHT='(.*)', FRAME='(.*)')
search = re.compile(re_format)
result = search.findall(file_path)
# result: [('101-001-015', 'fg01', '4312', '2156', '101-001-015', 'fg01.000', '')]
Все ключи шаблона могут содержать различные символы и состоять из различной длины, поэтому я ищу хороший алгоритм сопоставления. Любые идеи, если и как это можно сделать с помощью Python re или каких-либо альтернативных библиотек?
Спасибо!