У меня есть этот словарь:Элегантный способ вставки нескольких аргументов
local_commands_dict = {
r"\b(listen)\b\s(\d+)": listen_for_connections
}
который содержит регулярное выражение, чтобы соответствовать, как ключ и переменную метода в качестве значения. Я использую следующий код для навигации пользовательского ввода, в команду из словаря:
for cmd in local_commands_dict:
regex = re.compile(cmd)
match = regex.match(data)
if match is not None:
if regex.groups == 1:
local_commands_dict[cmd]()
elif regex.groups == 2:
local_commands_dict[cmd](match.group(2))
elif regex.groups == 3:
local_commands_dict[cmd](match.group(2),match.group(3))
break
Где data
является пользовательским вводом. Есть ли более удобный способ навигации между различными аргументами? Должно быть, это Python.
Спасибо!
Хорошо, и если бы я хотел отправить только группу '1-n'? где 'n' - максимальное количество групп. Обратите внимание, что 'n' изменяется от команды к команде. – Cybrus
.groups() - это все согласованные группы, поэтому он также изменится с команды на команду, я не понимаю ваш вопрос. – RemcoGerlich
Потому что, если я правильно помню, 'group (0)' всегда является полным совпадением. Который мне не нужно переходить в мою функцию. – Cybrus