Я пытаюсь прочитать пакетный скрипт, содержащий входную строку команды и необязательные параметры, такие как
input = 'command -a field1 -b field2 -c field3'
Параметры опции задаются пользователем в файле, и я получаю строку, читаяфайл.Если опция включена, мне нужно будет извлечь поле.
В настоящее время мое регулярное выражение имеет вид:
expr = '^(?P<exec>[^\s]+) -m (?P<mode>[^\s]+) -d (?P<machine>[^\s]+) -p (?P<port>[^\s]+)'
m = re.match(expr, input)
Когда пользователь включает все параметры в одном порядке, регулярное выражение совпадаетстрока и группы захвачены.Вот пример выходных данных.
{ 'exec': 'custom-script',
'mode': 'debug',
'machine': 'desk-123',
'port': '7905' }
Однако, если какой-либо параметр не включен, или если они находятся в разных порядках, регулярное выражение не выполняется.Как я могу изменить свое регулярное выражение для выполнения в этих двух случаях?