import re
regex = re.compile(r"([A-Z][a-z]{2} [A-Z][a-z]{2} \d{2} \d{2}:\d{2}:\d{2} CET \d{4})\n(/dev.*?) ==> (.*?)\n.*?\n(\d*) bytes .*? copied, (.*?) s, (.*?) (.*?s\n)(.*?)Exit status: (\d*)\n", flags=re.DOTALL | re.MULTILINE)
test_str = ("Thu Feb 11 15:01:37 CET 2021\n"
"/dev/mapper/vgdata-euramis_u000 ==> /ec/prod/server/euramis/u000\n"
"1+0 records in\n"
"1+0 records out\n"
"512 bytes (512 B) copied, 0.00383015 s, 134 kB/s\n"
" Command being timed: \"dd if=/dev/zero of=/ec/prod/server/euramis/u000/TstPerf/test_512_1 bs=512 count=1 oflag=dsync\"\n"
" User time (seconds): 0.00\n"
" System time (seconds): 0.00\n"
" Percent of CPU this job got: 25%\n"
" Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00\n"
" Average shared text size (kbytes): 0\n"
" Average unshared data size (kbytes): 0\n"
" Average stack size (kbytes): 0\n"
" Average total size (kbytes): 0\n"
" Maximum resident set size (kbytes): 812\n"
" Average resident set size (kbytes): 0\n"
" Major (requiring I/O) page faults: 0\n"
" Minor (reclaiming a frame) page faults: 252\n"
" Voluntary context switches: 4\n"
" Involuntary context switches: 1\n"
" Swaps: 0\n"
" File system inputs: 0\n"
" File system outputs: 8\n"
" Socket messages sent: 0\n"
" Socket messages received: 0\n"
" Signals delivered: 0\n"
" Page size (bytes): 4096\n"
" Exit status: 0\n"
"Thu Feb 11 16:02:17 CET 2021\n"
"/dev/mapper/vgdata-euramis_u000 ==> /ec/prod/server/euramis/u000\n"
"1+0 records in\n"
"1+0 records out\n"
"512 bytes (512 B) copied, 0.00275458 s, 186 kB/s\n"
" Command being timed: \"dd if=/dev/zero of=/ec/prod/server/euramis/u000/TstPerf/test_512_1 bs=512 count=1 oflag=dsync\"\n"
" User time (seconds): 0.00\n"
" System time (seconds): 0.00\n"
" Percent of CPU this job got: 33%\n"
" Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00\n"
" Average shared text size (kbytes): 0\n"
" Average unshared data size (kbytes): 0\n"
" Average stack size (kbytes): 0\n"
" Average total size (kbytes): 0\n"
" Maximum resident set size (kbytes): 816\n"
" Average resident set size (kbytes): 0\n"
" Major (requiring I/O) page faults: 0\n"
" Minor (reclaiming a frame) page faults: 253\n"
" Voluntary context switches: 4\n"
" Involuntary context switches: 1\n"
" Swaps: 0\n"
" File system inputs: 0\n"
" File system outputs: 8\n"
" Socket messages sent: 0\n"
" Socket messages received: 0\n"
" Signals delivered: 0\n"
" Page size (bytes): 4096\n"
" Exit status: 0\n"
"Thu Feb 11 17:02:26 CET 2021\n"
"/dev/mapper/vgdata-euramis_u000 ==> /ec/prod/server/euramis/u000\n"
"1+0 records in\n"
"1+0 records out\n"
"512 bytes (512 B) copied, 0.00323523 s, 158 kB/s\n"
" Command being timed: \"dd if=/dev/zero of=/ec/prod/server/euramis/u000/TstPerf/test_512_1 bs=512 count=1 oflag=dsync\"\n"
" User time (seconds): 0.00\n"
" System time (seconds): 0.00\n"
" Percent of CPU this job got: 25%\n"
" Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00\n"
" Average shared text size (kbytes): 0\n"
" Average unshared data size (kbytes): 0\n"
" Average stack size (kbytes): 0\n"
" Average total size (kbytes): 0\n"
" Maximum resident set size (kbytes): 820\n"
" Average resident set size (kbytes): 0\n"
" Major (requiring I/O) page faults: 0\n"
" Minor (reclaiming a frame) page faults: 252\n"
" Voluntary context switches: 4\n"
" Involuntary context switches: 1\n"
" Swaps: 0\n"
" File system inputs: 0\n"
" File system outputs: 8\n"
" Socket messages sent: 0\n"
" Socket messages received: 0\n"
" Signals delivered: 0\n"
" Page size (bytes): 4096\n"
" Exit status: 0\n")
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