import re
regex = re.compile(r"^(SWEx-elmPCI-A-02\.lssh\.com)\s+(.*?)\s{2,}(\d+)\s+(.*?)\s{2,}([^\s]+)\s+(.*?)$", flags=re.DOTALL | re.MULTILINE)
test_str = ("Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge\n"
" S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,\n"
" D - Remote, C - CVTA, M - Two-port Mac Relay\n\n"
"Device ID Local Intrfce Holdtme Capability Platform Port ID\n"
"SWEx-elmPCI-A-02.lssh.com\n"
" Gig 2/0/1 137 R S I WS-C3750X Gig 1/0/1\n"
"SWEx-elmPCI-A-02.lssh.com\n"
" Gig 2/0/1 138 R S I WS-C3750X Gig 1/0/1\n\n"
"SWEa-elmPCI-02 Gig 1/0/4 169 T AIR-LAP12 Gig 0\n"
"SWEa-elmPCI-01 Gig 1/0/9 170 T AIR-LAP11 Gig 0")
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