# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(\d[ \-.)]{0,3}){11,20}|(\b[\d]{3}\b)[^,.]"
test_str = ("1546\n"
"4 8 6 2 6 4 1 1 5 3 6 6 6 7 7 1\n"
"5378 2052 1163 1153\n"
"6011-7614 4775 1364\n"
"333 112,55 mdsksajfk\n\n"
"05536080\n\n"
"214\n"
"12/05\n"
"12/08\n\n"
"122sss 222222222222111 22464 222 222ss, 222,22 22.22 333215122 22 33 123456789012\n"
"122.44\n"
"445\n"
"1546\n"
"4 8 6 2 6 4 1 1 5 3 6 6 6 7 7 1\n"
"5378 2052 1163 1153\n"
"6011-7614 4775 1364\n"
"333 112,55 mdsksajfk\n\n"
"11947285580\n"
"(11)947285580\n"
"1194728-5580\n"
"11 94728 5580\n\n"
"346.549.668-32\n"
"46254966832\n"
"31604523875\n"
"10154511,55\n"
"12/56/12019")
matches = re.finditer(regex, test_str)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.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