# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"timeout\shttp-request\s+\d+(?=[\s\S]+defaults)"
test_str = ("global\n"
" log 127.0.0.1 local0\n"
" log 127.0.0.1 local1 notice\n"
" #log loghost local0 info\n"
" maxconn 32768\n"
" tune.maxaccept -1\n"
" chroot /var/lib/haproxy\n"
" daemon\n"
" timeout http-request 5000\n"
" stats socket /var/run/haproxy.sock mode 600 level admin\n"
" stats timeout 2m\n\n"
" \n"
"defaults\n"
" log global\n"
" mode http\n"
" option httplog\n"
" option dontlognull\n"
" retries 5\n"
" option redispatch\n"
" maxconn 16384\n"
" timeout connect 7s\n"
" timeout client 500s\n"
" timeout server 500s\n"
" timeout http-request 7000\n"
" timeout client-fin 30s\n"
" timeout tunnel 1h")
matches = re.search(regex, test_str, re.MULTILINE)
if matches:
print ("Match was found at {start}-{end}: {match}".format(start = matches.start(), end = matches.end(), match = matches.group()))
for groupNum in range(0, len(matches.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = matches.start(groupNum), end = matches.end(groupNum), group = matches.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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