Как я могу разобрать имя файла с помощью регулярных выражений в Python? - PullRequest
1 голос
/ 05 апреля 2019

У меня есть следующее имя файла: aabbcc_id_1112233.png, что означает следующее регулярное выражение: [A-Za-z0-9]_id_[0-9].png, где [x] означает, что оно может содержать >= 1 символов x. Как я могу поместить его в библиотеку регулярных выражений Python для возврата кортежа: (id, id_name)?

Например, для aabbcc22_id_123.png Я хочу получить (id, id_name) = ('aabbcc22', 'id_123').

Вариант использования: в настоящее время я делаю .split() подчеркиванием, которое является хакерским, поскольку мне приходится использовать индексы:

    base = filename.split('.')[0]
    return (base.split('_')[0], '_'.join(base.split('_')[1:]))

1 Ответ

0 голосов
/ 05 апреля 2019

Это сделает работу:

>>> import re
>>> get_id = re.compile('(.*)_(id_.*)[.]png')
>>> get_id.findall('aabbcc22_id_123.png')
[('aabbcc22', 'id_123')]
>>>

И вы можете присвоить значения переменным id и id_name, используя это:

>>> [(id, id_name)] = get_id.findall('aabbcc22_id_123.png')
>>> id, id_name
('aabbcc22', 'id_123')
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...