Вам нужно добавить P
в каждую группу, то есть:
(?P<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s
(?P<name>\w+)\s
(?P<proto>\w+)\s
(?P<http_status_code>\d+)
В Python
это может быть
import re
rx = re.compile(r'(?P<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s(?P<name>\w+)\s(?P<proto>\w+)\s(?P<http_status_code>\d+)')
string = "172.16.1.1 bob tcp 200"
for m in rx.finditer(string):
print(m.groupdict())
Что дает
{'ip': '172.16.1.1', 'name': 'bob', 'proto': 'tcp', 'http_status_code': '200'}
См. Демонстрацию вашего выражения на regex101.com .
Обратите внимание: если у вас всегда есть этот формат, вы можете легко разделить и распаковать:
string = "172.16.1.1 bob tcp 200"
ip, name, proto, status = string.split()
print(ip)