import re
regex = re.compile(r"(?P<Module>^\w+)+\s+(?P<Name>.{1,}(?=Ke|Fi))+(?P<Type>(Kernel|File System))", flags=re.MULTILINE)
test_str = ("1394ohci 1394 OHCI-совместимый Kernel\n"
"3ware 3ware Kernel 19.05.2015 3:28:03\n"
"ACPI Драйвер Microsoft ACPI Kernel\n"
"AcpiDev Драйвер устройств с AC Kernel\n"
"acpiex Microsoft ACPIEx Drive Kernel\n"
"acpipagr Драйвер агрегатора про Kernel\n"
"AcpiPmi Драйвер устройства изм Kernel\n"
"acpitime Драйвер ACPI Wake Alar Kernel\n"
"Acx01000 Acx01000 Kernel\n"
"ADP80XX ADP80XX Kernel 10.04.2015 1:49:48\n"
"AFD Драйвер дополнительных Kernel\n"
"afunix afunix Kernel\n"
"ahcache Application Compatibil Kernel\n"
"amdgpio2 Драйвер GPIO-клиента A Kernel 07.02.2019 14:32:20\n"
"amdi2c Служба контроллера I2C Kernel 20.03.2019 9:57:33\n"
"AmdK8 AMD K8 драйвер процесс Kernel\n"
"AmdPPM Драйвер процессора AMD Kernel\n"
"amdsata amdsata Kernel 14.05.2015 17:14:52\n"
"amdsbs amdsbs Kernel 12.12.2012 2:21:44\n"
"amdxata amdxata Kernel 01.05.2015 5:55:35\n"
"AppID Драйвер AppID Kernel\n"
"applockerflt Драйвер фильтра Smartl Kernel\n"
"bindflt Windows Bind Filter Dr File System\n"
"bowser Браузер File System\n"
"BtFilter BtFilter Kernel 25.01.2019 10:46:26")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html