import re
regex = re.compile(r"([\d.]+-[\d.]+)\s+sec\s+([\d.]+\s+\w?Bytes)\s+([\d.]+\s+\w?bits/sec)[\s\w]+receiver", flags=re.MULTILINE)
test_str = ("Connecting to host 9.10.21.01, port 5201\n"
"[ 4] local 9.17.201.011 port 44466 connected to 9.10.21.01 port 5201\n"
"[ ID] Interval Transfer Bandwidth Retr Cwnd\n"
"[ 4] 0.00-2.00 sec 1.71 GBytes 7.36 Gbits/sec 264 789 KBytes\n"
"[ 4] 2.00-4.00 sec 1.63 GBytes 6.99 Gbits/sec 133 865 KBytes\n"
"[ 4] 4.00-5.00 sec 732 MBytes 6.14 Gbits/sec 11 826 KBytes\n"
"- - - - - - - - - - - - - - - - - - - - - - - - -\n"
"[ ID] Interval Transfer Bandwidth Retr\n"
"[ 4] 0.00-5.00 sec 4.06 GBytes 6.97 Gbits/sec 408 sender\n"
"[ 4] 0.00-5.00 sec 4.05 GBytes 6.96 Gbits/sec receiver")
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