import re
regex = re.compile(r"(?:opc.tcp|https|http):\/\/(\S+):\d+[\/\w]*")
test_str = ("https://198.10.157.14:4814/fdggfh/fdhgdsf/gnhdfg\n\n"
"opc.tcp://198.10.157.14:4814/fdggfh/fdhgdsf/gnhdfg\n\n\n"
"address 192.168.1.1\n"
" netmask 255.255.255.0\n"
" gateway 192.168.1.254\n\n"
"=[\\w\\W]*(auto[\\w\\W]*eth2\\s+inet\\s+(dhcp|static)\\s*((?:address\\s+\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(?:netmask\\s+\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(?:gateway\\s+(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})))?)\n\n"
"auto eth2\n"
"iface eth2 inet static\n"
" address 192.168.1.1\n"
" netmask 255.255.255.0\n"
" gateway 192.168.1.254\n"
"pre-up /sbin/ifconfig $IFACE mtu 1450\n\n"
"auto eth3\n"
"iface eth3 inet static\n"
" address 192.168.1.1\n"
" netmask 255.255.255.0\n"
" gateway 192.168.1.254\n\n"
"= ([\\d\\.]+)(\\w?)\\s+\\d+%.*\n"
"/dev/sda1 ff 55 7sg233 fgd 3.7G 4.0K 3.7G 0% /mnt/sda1 \n\n\n"
" <?xml version=\"1.0\" encoding= \"utf-8\"?>\n"
"<confi guration>\n\n"
"[\\w\\W]*(auto[\\w\\W]*eth2\\s+inet\\s+(dhcp|static)\\s+((?:address\\s+\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})?\\s*(?:netmask\\s+\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})?\\s*(?:gateway\\s+(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}))?)?\\s+(pre-up \\/sbin\\/ifconfig \\$IFACE mtu \\d{3,4}\\s+))")
match = regex.search(test_str)
if match:
print(f"Match 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