желаемый, вывод.
login_api_v1 -> (login_api, 1)
login_apiv1 -> (login_api, 1)
login_api -> (login_api, None)
loginv1 -> (login, 1)
login -> (login, None)
Засунуть это полагаю в
e```.match(regular_expr, name).groupdict()
`
Вижу необходимость выделения двух групп:
_?v(?P<version>\d+) для версии и что-типа (?P<name>\w+) для строки без версии. При совмещении ожидаемо не работает т.к. \w+ забирает просто всю строку.
Мыслей больше чет нет.
>>> r = re.compile(r"^(\w+?)(?:_?v(\d+))?$") >>> r.match("login_api_v1").groups() ('login_api', '1') >>> r.match("login_api1").groups() ('login_api1', None) >>> r.match("login_apiv1").groups() ('login_api', '1') >>> r.match("loginv1").groups() ('login', '1')
Обсуждают сегодня