# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(\d{3})(\d{3})(\d{4})"
test_str = ("7809392938\n"
"4033420393\n"
"7808757619\n"
"7804627372\n"
"4033431930\n"
"7804401427\n"
"3065843029\n"
"3068734346\n"
"3065459158\n"
"4032513899\n"
"6138371733\n"
"6136396120\n"
"6133220669\n"
"6132832702\n"
"7056961818\n"
"8195233827\n"
"8195379506\n\n"
"8193710857\n\n\n"
"6044659476\n"
"5065360323\n"
"9025972293\n"
"9026675158\n"
"3064418455\n"
"7808952118\n"
"6134731171\n"
"4188779045\n"
"4186634875\n\n"
"4162860104\n"
"9056469563\n"
"6136344085\n"
"9054536644\n"
"5192827449\n"
"7053682779\n"
"7057521683\n"
"7054767377\n"
"7054971162\n"
"7057593131\n"
"8075472443\n"
"9054782200\n"
"4168386400\n"
"7053270706\n"
"7056896545\n"
"5197823445\n"
"5194557669\n"
"5195425944\n"
"5194262785\n"
"9057762200\n"
"8193369296\n"
"4509373605\n\n"
"5143860399\n"
"4503489425\n"
"4506781069\n"
"4182962342\n\n"
"8679207104\n"
"9059739040\n"
"7058474747\n"
"2505806048\n"
"2502180257\n"
"6042709933\n"
"4164348199\n"
"7057210639\n"
"7057349081\n"
"2504791217\n"
"3063733403\n"
"5065460100\n"
"7803973778\n"
"6049434754\n"
"9023544384\n"
"5068709204\n"
"4037196000\n"
"2508820609\n"
"2509611173\n"
"7095898574\n"
"3066915254\n"
"4183975361\n"
"9028375909\n"
"5199157304\n"
"4189483659\n"
"8196842529\n"
"5064507449\n"
"5063575494\n"
"5063672576\n"
"6048929667\n"
"3068915205\n"
"5066331384\n\n"
"2503655167\n"
"2502653235\n"
"2507529278\n"
"2506245540\n"
"2505674718\n"
"7097494516\n"
"7095767638\n"
"7098320809\n"
"9026792314\n"
"9026442913\n"
"9026442293\n"
"9028658567\n"
"9027369404\n"
"9027423186\n"
"9028933908\n"
"4035278016\n"
"4032265840\n"
"4033278207\n"
"3062492680\n"
"2042756980\n"
"2046385237\n"
"2043393316\n"
"4506470945\n"
"4187383045\n"
"2505372791\n"
"9026872112\n"
"5193744315\n"
"4165968575\n"
"4036523816\n"
"6137283666\n"
"2504447144\n"
"4187360000\n"
"4188150011\n"
"8676672570\n"
"4504784078\n"
"5194810153\n"
"7806251607\n"
"4186957692\n"
"4506494109\n"
"6132668702\n"
"2507663003\n"
"6049901059\n"
"6139302145\n"
"2507232093\n"
"5199423280\n"
"6134765593\n"
"5064595336\n"
"5193519378\n"
"2508301088\n"
"8196372035\n"
"9028753656\n"
"9059346500\n"
"8075770789\n"
"6477909063\n"
"6049465187\n"
"7056462443\n"
"2505922183\n"
"7782161820\n"
"5192653223\n"
"5063974955\n"
"7092564814\n"
"4033370181\n"
"8198773421\n"
"9023683266\n"
"4033908888\n"
"3066936127\n"
"5199416173\n"
"4167812753\n"
"8676687380\n"
"6048460630\n"
"6137964840\n"
"5193376209\n"
"2506355865\n"
"2508474469\n"
"7056626061\n"
"9053080060\n"
"9054597533\n"
"9057237320\n"
"7803324545\n"
"2505542598\n"
"9026388451\n"
"8193783753\n"
"2507632056\n"
"5067354659\n"
"2505542955\n"
"7059465040\n"
"2046873964\n"
"6042028854\n"
"2048425342\n"
"7097456052\n"
"7056925631\n"
"9025661497\n\n"
"4509331802\n"
"4035274710\n"
"5195833619\n"
"5144575112\n"
"6136344247\n"
"5192419733\n"
"9055716776\n"
"6134760233\n"
"2504266049\n\n"
"6477634195\n"
"5146070708\n"
"5067552960\n"
"3069809211\n"
"4503022369\n\n"
"7804543304\n"
"7804637212\n"
"4032088354\n"
"4032819500\n"
"8673349753\n"
"8679207515\n"
"2507835562\n"
"4037586887\n"
"2508252215\n"
"7092273714\n"
"4186724195\n"
"6134157330\n"
"9052784681\n"
"4508354914\n"
"6047323899\n"
"8076226386\n"
"7807157130\n"
"5068588300\n"
"6133899546\n"
"4035273688\n"
"6042234345\n"
"2504931671\n"
"8198408405\n"
"2506890329\n"
"2507218688\n"
"6045911825\n"
"6044698609\n"
"3069241004\n"
"9055502464\n"
"4507772134\n"
"4166881095\n"
"5194733618\n"
"7057495520\n"
"9053324976\n"
"6042715299\n"
"6048856208\n"
"2503378239\n\n"
"2502454938\n"
"2506275956\n"
"5066331384\n"
"7053601885\n"
"6043392005\n"
"6472959264\n"
"4508186798\n"
"5146953528\n"
"2508324265\n\n"
"8079372062\n"
"8198555822\n"
"6136322153\n"
"2894311030\n"
"6049850214\n"
"9024364910\n"
"9028364364\n"
"2504422663\n"
"7059421737\n"
"9052799187\n"
"9057360310\n\n"
"4037586427\n"
"4183000661\n"
"9028257522\n"
"5144819024\n\n"
"4509644266\n"
"4039020100\n"
"3066347693\n\n"
"7053350460\n\n"
"5068321992\n"
"7057439571\n\n"
"7804674856\n"
"6138974467\n"
"5146298848\n"
"8677664124\n"
"5067399737\n"
"9028636932\n"
"7787824971\n"
"6042506974\n\n"
"5199698893\n"
"2508608660\n"
"5197370274\n"
"6042001562\n"
"6472004306\n"
"4167595783\n\n"
"3067782686\n"
"7804678679\n"
"6472338817\n"
"7057457119\n"
"7808122731\n\n"
"2507543528\n"
"4504717099\n"
"6135307723\n"
"4507993777\n"
"8195646350\n"
"7804794690\n"
"5197437840\n"
"4505300810\n\n"
"5196335949\n"
"4502248479\n"
"9023964040\n"
"4168547404\n"
"4033806498\n"
"2044779125\n\n"
"9025821561\n"
"9024662124\n"
"9024044215\n\n\n"
"7054812054\n"
"7097486282\n\n\n\n"
"6042437418\n\n\n"
"5064723929\n"
"5064548676\n"
"5064585957\n"
"5146884163\n"
"7059875411\n\n"
"7808269012\n"
"3066523701\n"
"7097271098\n"
"6134537921\n"
"2507684212\n"
"8192229743\n"
"4189624834\n"
"2509270781\n"
"4185628441\n"
"5194897027\n"
"7806675393\n")
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