Я пытаюсь разобрать строку в регулярном выражении и там 99%.
моя тестовая строка
1
1234 1111 5555 88945
172.255.255.255 from 172.255.255.255 (1.1.1.1)
Origin IGP, localpref 300, valid, external, best
rx pathid: 0, tx pathid: 0x0
мой текущий шаблон регулярного выражения:
(?P<as_path>(\d{4,10}\s){1,20})\s+(?P<peer_addr>\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3}).*\((?P<peer_rid>\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3})\)\s+.*localpref\s(?P<local_pref>\d+),\s(?P<attribs>\S+,\s{0,4})
я использую regex101 для тестирования и здесь есть ссылка на тест https://regex101.com/r/iGM8ye/1
Итак, в настоящее время у меня есть группа2 Я не хочу эту группу, может кто-нибудь сказать мне, почему я получаю эту группу и какчтобы удалить его?
, а во-вторых, в атрибутах, которые я хочу сопоставить со словами «действительный, внешний, лучший», в настоящее время мой шаблон соответствует только «действительный», я думал, добавив повторение внутри группысовпал бы со всеми тремя из них, но это не так.
Как мне добиться совпадения повторения «строка, строка, строка» (строка с запятой) в одну группу?
Спасибо
РЕДАКТИРОВАТЬ
Желаемый вывод
as_path : 1234 1111 5555 88945
peer_addr : 172.255.255.255
peer_rid : 1.1.1.1
local_pref : 300
attribs : valid, external, best
attiribs также может быть только действительным, внешним или просто внешним, или другой записью в формате(stringcommaspace)