# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"([\d.-]+),(\d[\d.]+|(?:.)[-\d.]+)"
test_str = ("Latitude/Longitude\n"
"#Н/Д\n"
"33.651272, -117.990384\n"
"49.996387, 8.281494\n"
"46.214978, -74.584957\n"
"32.681523, -117.177851\n"
"33.56666, -111.918578\n"
"15.30686, 73.911334\n"
"#Н/Д\n"
"19.762559, -70.641425\n"
"38.427717, 27.135626\n"
"1.306349, 103.833247\n"
"45.507321, -73.565433\n"
"42.349027, -71.076333\n"
"29.461875, -98.681267\n"
"37.933797, -107.851831\n"
"18.797263, 98.969404\n"
"#Н/Д\n"
"25.216342, 55.251621\n"
"#Н/Д\n"
"47.497362, 19.052305\n"
"51.499288, -0.157697\n"
"39.949119, -75.164844\n"
"#Н/Д\n"
"32.710152, -117.168404\n"
"#Н/Д\n"
"49.283749, -123.120783\n"
"28.427015, -81.467563\n"
"24.547717, -81.794206\n"
"31.777066, 35.222551\n"
"36.991932, 27.510750\n"
"#Н/Д\n"
"38.126632, 13.350806\n"
"46.438612, 6.906799\n"
"40.42222, -3.684213\n"
"45.43074, 12.33365\n"
"#Н/Д\n"
"43.748048, 7.438787\n"
"#Н/Д\n"
"40.75802, -73.974978\n"
"40.55092, 14.247042\n"
"45.501572, -73.577923\n"
"29.954252, -90.067597\n"
"37.937361, -107.846632\n"
"#Н/Д\n"
"#Н/Д\n"
"41.884363, -87.620725\n"
"42.35773, -71.06013\n"
"33.845612, -84.370387\n"
"29.955761, -90.067887\n"
"38.562024, -76.048393\n"
"38.29757, -122.289269\n"
"40.752888, -73.981033\n"
"47.610043, -122.335561\n"
"33.64516, -111.917536\n"
"32.848638, -117.273695\n"
"#Н/Д\n"
"#Н/Д\n"
"53.334528, -6.258232\n"
"51.494308, -0.175558\n"
"1.29343, 103.858809\n"
"18.698384, -68.451145\n"
"43.292645, 5.359823\n"
"59.331914, 18.080605\n"
"40.414559, -3.701406\n"
"#Н/Д\n"
"10.641584, -85.658913\n"
"#Н/Д\n"
"45.51986, -122.677339\n"
"33.720253, -116.331044\n"
"39.184541, -106.814381\n"
"#Н/Д\n"
"#Н/Д\n"
"48.870763, 2.32976\n"
"#Н/Д\n"
"19.427554, -99.192761\n"
"20.912971, -156.692167\n"
"-36.844873, 174.757413\n"
"#Н/Д\n"
"14.550757, 121.023001\n"
"52.351381, 4.872723\n"
"#Н/Д\n"
"#Н/Д\n"
"46.507219, 6.628285\n"
"50.091392, 14.418329\n"
"#Н/Д\n"
"#Н/Д\n"
"-23.616574, -46.698208\n"
"34.988825, 135.773575\n"
"48.875029, 2.301244\n"
"48.204556, 16.356343\n"
"41.061244, 28.989182\n"
"36.152536, -86.78409\n"
"52.508285, 13.372674\n"
"37.782208, -122.404827\n"
"47.623197, -70.143448\n"
"30.26815, -97.741755\n"
"#Н/Д\n"
"44.975925, -93.268833\n"
"45.42487, -75.694846\n"
"24.90005, -80.655148\n"
"45.500618, -73.567779\n"
"32.25354, -64.826465\n"
"45.4288, -75.6909\n"
"45.754784, 4.834093\n"
"43.165676, -73.070642\n"
"25.760484, -80.190906\n"
"39.639253, -106.36816\n"
"41.901359, -87.627417\n"
"48.139461, 11.556781\n"
"45.5175, -122.680077\n"
"#Н/Д\n"
"51.507894, -0.143671\n"
"41.881643, -87.625001\n"
"#Н/Д\n"
"43.586675, -110.829048\n"
"39.199682, -120.21733\n"
"#Н/Д\n"
"42.357306, -71.060687\n"
"52.367811, 4.883059\n"
"22.902842, -109.893796\n"
"#Н/Д\n"
"51.216544, 6.752721\n"
"#Н/Д\n"
"25.112432, 55.138978\n"
"22.297617, 114.173412\n"
"#Н/Д\n"
"#Н/Д\n"
"50.94043, 6.96953\n"
"45.434116, 12.345296\n"
"#Н/Д\n"
"50.460406, 30.525621\n"
"30.071856, 31.227775\n"
"33.688495, -116.310231\n"
"40.441484, -80.001392\n"
"45.502202, -73.575932\n"
"33.092115, -117.266082\n"
"40.76821, -73.984871\n"
"-17.485714, -149.844102\n"
"45.645307, -74.949563\n"
"52.512172, 13.392269\n"
"#Н/Д\n"
"51.49732, -0.156256\n"
"39.94934, -75.148884\n"
"30.16498, -97.447389\n"
"32.786262, -96.802363\n"
"30.247365, -97.750116\n"
"20.464019, -86.98145\n"
"32.080843, -81.093186\n"
"40.757794, -73.983784\n"
"19.367662, -99.261276\n"
"-8.491628, 115.253863\n"
"#Н/Д\n"
"#Н/Д\n"
"43.740065, 7.429895\n"
"#Н/Д\n"
"42.862323, 11.877213\n"
"41.907613, 12.486654\n"
"55.733426, 37.643884\n"
"#Н/Д\n"
"#Н/Д\n"
"43.645957, -79.381225\n"
"48.868479, 2.32696\n"
"39.956932, -75.170271\n"
"45.520565, -122.682308\n"
"43.567281, -70.227882\n"
"43.298433, 5.370189\n"
"#Н/Д\n"
"#Н/Д\n"
"51.499391, -0.132902\n"
"37.859041, -122.242507\n"
"50.087629, 14.418374\n"
"#Н/Д\n"
"21.278263, -157.830944\n"
"39.996165, -78.506873\n"
"34.059998, -118.437348\n"
"39.747902, -104.992659\n"
"33.80088, -117.917943\n"
"#Н/Д\n"
"20.00622, -155.824418\n"
"45.686618, -121.904606\n"
"51.515227, -0.15689\n"
"#Н/Д\n"
"41.901996, 12.496173\n"
"48.871137, 2.305048\n"
"#Н/Д\n"
"21.049951, 105.839836\n"
"#Н/Д\n"
"48.86731, 2.285653\n"
"11.546306, 104.933521\n"
"-31.960749, 115.873621\n"
"52.502489, 13.331838\n"
"#Н/Д\n"
"31.955839, 35.909983\n"
"48.868414, 2.321325\n"
"#Н/Д\n"
"51.526777, -0.132491\n"
"#Н/Д\n"
"45.427556, 12.319975\n"
"#Н/Д\n"
"#Н/Д\n"
"10.426671, -75.551485\n"
"#Н/Д\n"
"43.683912, 7.234447\n"
"40.722705, -74.004755\n"
"#Н/Д\n"
"4.670009, -74.053064\n"
"20.701884, -103.376744\n"
"41.898711, -87.627507\n"
"59.330871, 18.07692\n"
"39.289747, -76.615713\n"
"42.648166, 11.512796\n"
"41.880875, -87.631752\n"
"#Н/Д\n"
"18.358936, -65.627641\n"
"41.891105, -87.627045\n"
"#Н/Д\n"
"41.919833, 12.48141\n"
"-34.890494, -56.055399\n"
"40.719796, -74.000036\n"
"#Н/Д\n"
"34.076409, -118.377376\n"
"18.358936, -65.627641\n"
"47.606956, -122.334083\n"
"#Н/Д\n"
"43.775288, 11.268054\n"
"48.877209, 2.296827\n"
"50.114976, 8.680725\n"
"48.875689, 2.325465\n"
"#Н/Д\n"
"48.213049, 16.37988\n"
"38.905748, -77.051673\n"
"41.89775, 12.477402\n"
"-12.097482, -77.038037\n"
"41.047295, 29.009608\n"
"32.782866, -79.932486\n"
"38.863056, -77.060109\n"
"#Н/Д\n"
"25.80611, -80.123885\n"
"25.817853, -80.122189\n"
"33.65815, -118.002853\n"
"43.649088, -79.376254\n"
"29.891735, -81.313635\n"
"25.925468, -81.728497\n"
"32.067345, -81.094695\n"
"35.566771, -82.543989\n"
"#Н/Д\n"
"40.758564, -73.989752\n"
"37.785151, -122.405832\n"
"27.973556, -82.828887\n"
"25.082129, -77.313443\n"
"#Н/Д\n"
"39.604113, -106.518129\n"
"28.403354, -81.527306\n"
"33.018943, -117.205013\n"
"21.135079, -86.754185\n"
"38.312007, -122.482274\n"
"7.977468, 98.280525\n"
"#Н/Д\n"
"#Н/Д\n"
"32.078956, -81.084662\n"
"#Н/Д\n"
"#Н/Д\n"
"35.681788, 139.766761\n"
"#Н/Д\n"
"-37.81482, 144.969433\n"
"-6.192999, 106.822267\n"
"#Н/Д\n"
"51.507796, -0.132736\n"
"38.895247, -77.010755\n"
"#Н/Д\n"
"30.259891, -97.739039\n"
"21.799584, -72.169424\n"
"35.68849, -105.94199\n"
"32.716214, -117.159884\n"
"37.786773, -122.411287\n"
"25.792099, -80.129032\n"
"25.082129, -77.313443\n"
"40.715002, -74.015222\n"
"33.529497, -111.9731\n"
"34.054158, -118.412522\n"
"#Н/Д\n"
"35.67413, 139.741144\n"
"22.293418, 114.1741\n"
"8.086453, 98.298955\n"
"-33.871776, 151.207517\n"
"19.424141, -99.164983\n"
"37.56499, 126.981369\n"
"39.905531, 116.452054\n"
"#Н/Д\n"
"41.907184, 12.465629\n"
"41.910272, 12.490268\n"
"45.435363, 12.33034\n"
"43.48799, -1.554047\n"
"43.552132, 7.020803\n"
"43.770168, 11.254647\n"
"51.504939, -0.150134\n"
"40.632959, 14.597304\n"
"45.463074, 9.197959\n"
"18.443791, -66.017754\n"
"53.339403, -6.26142\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"20.627574, -87.071673\n"
"13.738771, 100.546892\n"
"24.498927, 54.367727\n"
"10.784333, 106.70233\n"
"51.508404, -0.106799\n"
"34.869604, -111.758506\n"
"25.06669, -80.472195\n"
"16.826175, -99.862064\n"
"40.764524, -73.978457\n"
"#Н/Д\n"
"32.358914, -111.025531\n"
"47.604883, -122.336772\n"
"33.447461, -112.073668\n"
"#Н/Д\n"
"41.042358, 28.997222\n"
"13.720597, 100.521526\n"
"-33.92169, 18.41503\n"
"40.632061, 14.388932\n"
"45.466812, 9.19417\n"
"32.08917, 34.770897\n"
"27.969708, -82.830149\n"
"#Н/Д\n"
"40.759394, -73.97491\n"
"#Н/Д\n"
"41.883627, 8.783506\n"
"37.854097, 15.287703\n"
"#Н/Д\n"
"39.950948, -75.169541\n"
"41.894755, -87.624649\n"
"32.801184, -79.753959\n"
"#Н/Д\n"
"29.741522, -95.457223\n"
"#Н/Д\n"
"51.517992, -0.149945\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"29.956285, -90.065736\n"
"48.201709, 16.37102\n"
"#Н/Д\n"
"15.458414, 73.834555\n"
"#Н/Д\n"
"27.655985, -80.356579\n"
"38.726695, -9.155536\n"
"39.767605, -86.159359\n"
"34.100633, -118.342451\n"
"34.018671, -118.501103\n"
"#Н/Д\n"
"33.426067, -111.93888\n"
"40.413861, -3.701654\n"
"37.443679, -122.161438\n"
"25.78198, -80.142873\n"
"43.775408, 11.236838\n"
"29.768061, -95.459858\n"
"34.094441, -118.374329\n"
"#Н/Д\n"
"-8.780949, 115.225344\n"
"#Н/Д\n"
"41.389465, 2.166265\n"
"43.503149, 16.466029\n"
"#Н/Д\n"
"43.264851, -2.944282\n"
"49.360028, 0.071022\n"
"#Н/Д\n"
"#Н/Д\n"
"42.69499, 18.015217\n"
"25.991705, -80.118572\n"
"#Н/Д\n"
"#Н/Д\n"
"1.279973, 103.849728\n"
"13.043045, 80.248685\n"
"40.757524, -73.984059\n"
"40.682436, -111.556877\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"40.719404, -74.004902\n"
"49.28794, -123.113052\n"
"43.473395, -110.757499\n"
"#Н/Д\n"
"-33.868221, 151.195376\n"
"41.880283, -87.626698\n"
"13.719827, 100.524582\n"
"31.235252, 121.505749\n"
"35.66823, 139.741089\n"
"13.373635, 103.860755\n"
"51.509918, -0.155092\n"
"41.905609, 12.481517\n"
"49.359441, 0.068769\n"
"7.809057, 98.407633\n"
"43.548459, 7.011745\n"
"52.372646, 4.894815\n"
"24.414582, 54.490653\n"
"56.320216, -2.730864\n"
"20.631616, -87.067938\n"
"47.612364, -122.352234\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"25.771157, -80.189093\n"
"40.722146, -74.004627\n"
"34.420361, -119.702475\n"
"#Н/Д\n"
"#Н/Д\n"
"41.030366, 28.97213\n"
"#Н/Д\n"
"46.203376, 6.152146\n"
"38.305045, -122.283122\n"
"47.656935, -122.207112\n"
"13.734435, 100.564074\n"
"#Н/Д\n"
"40.397731, 116.685866\n"
"50.086448, 14.433853\n"
"41.023608, 28.975579\n"
"23.116958, 113.330099\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"36.157258, -86.784757\n"
"22.889828, -109.906413\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"37.959827, 23.721196\n"
"-37.814119, 144.972841\n"
"-28.029305, 153.432039\n"
"#Н/Д\n"
"40.436341, -3.690219\n"
"25.084986, -77.327843\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"40.764796, -111.89171\n"
"33.845336, -118.39689\n"
"#Н/Д\n"
"22.898715, -109.869525\n"
"35.627764, 139.740875\n"
"#Н/Д\n"
"29.610563, -98.606705\n"
"#Н/Д\n"
"33.803185, -111.926368\n"
"41.886398, -87.620373\n"
"19.92547, -155.888329\n"
"-37.824004, 144.957279\n"
"47.610573, -122.341351\n"
"-31.963829, 115.895371\n"
"38.721, -9.146966\n"
"9.8547, -85.401159\n"
"41.893896, -87.625155\n"
"28.467883, -81.467381\n"
"39.504098, 2.532353\n"
"50.117189, 8.687097\n"
"#Н/Д\n"
"-6.235031, 106.830287\n"
"#Н/Д\n"
"48.844908, 2.252661\n"
"#Н/Д\n"
"51.511719, -0.11832\n"
"41.406146, 2.200864\n"
"43.874187, -121.446471\n"
"#Н/Д\n"
"20.627574, -87.071673\n"
"14.574209, 120.988054\n"
"26.508515, 127.857330\n"
"#Н/Д\n"
"#Н/Д\n"
"45.479385, 9.196131\n"
"-18.108194, 177.32183\n"
"45.446452, 12.331218\n"
"25.770522, -80.189339\n"
"-8.791699, 115.229904\n"
"-8.799112, 115.2319\n"
"-6.225909, 106.798943\n"
"31.245349, 121.493066\n"
"43.560583, 39.77537\n"
"#Н/Д\n"
"32.709513, -117.232061\n"
"64.139838, -21.888807\n"
"36.12269, -115.170194\n"
"31.221819, 121.475592\n"
"53.549723, 9.988088\n"
"25.059742, 55.127965\n"
"#Н/Д\n"
"28.465954, -81.469608\n"
"-8.706277, 115.261997\n"
"39.908628, 116.417694\n"
"#Н/Д\n"
"50.83615, 4.357117\n"
"46.574756, 11.671541\n"
"-22.985935, -43.207361\n"
"32.775196, -96.804121\n"
"#Н/Д\n"
"41.906055, -87.628471\n"
"25.125078, 55.113931\n"
"26.154067, -80.100589\n"
"39.203812, -106.95979\n"
"41.408452, 2.217902\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"32.836131, -96.778019\n"
"37.807486, -122.42046\n"
"#Н/Д\n"
"31.387605, 120.948235\n"
"53.54026, -113.489494\n"
"#Н/Д\n"
"64.146367, -21.930777\n"
"26.703167, -80.0407\n"
"#Н/Д\n"
"27.709328, -82.737269\n"
"#Н/Д\n"
"40.766017, -73.978641\n"
"30.554897, -81.444502\n"
"#Н/Д\n"
"#Н/Д\n"
"31.269896, 121.587441\n"
"36.107349, -115.176584\n"
"-1.521942, 35.336838\n"
"39.927602, -105.118404\n"
"36.157262, -86.775414\n"
"#Н/Д\n"
"43.567889, 7.114898\n"
"29.423081, -98.489885\n"
"30.254173, 120.161609\n"
"36.090861, -115.175027\n"
"33.742683, -116.405986\n"
"30.291154, -97.858809\n"
"#Н/Д\n"
"39.927215, 116.460478\n"
"36.102251, -115.169968\n"
"36.120611, -115.176839\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"21.703253, -157.996841\n"
"-31.958793, 115.868521\n"
"1.292305, 103.858594\n"
"25.789019, -80.129468\n"
"#Н/Д\n"
"31.628794, -7.99668\n"
"#Н/Д\n"
"19.065452, 72.864425\n"
"#Н/Д\n"
"#Н/Д\n"
"36.150776, -86.802207\n"
"-1.277851, 36.815342\n"
"#Н/Д\n"
"#Н/Д\n"
"37.546436, -77.444152\n"
"34.103081, -118.339326\n"
"#Н/Д\n"
"42.349194, -71.072526\n"
"44.257279, -71.439481\n"
"34.202407, 108.988552\n"
"34.008974, -118.492874\n"
"29.947995, -90.066145\n"
"44.97891, -93.275052\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"26.051377, -80.211226\n"
"32.63125, -117.135418\n"
"#Н/Д\n"
"39.951743, -75.160204\n"
"27.992844, -82.372114\n"
"#Н/Д\n"
"#Н/Д\n"
"38.979419, -76.505803\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n"
"#Н/Д\n")
matches = re.finditer(regex, test_str, re.MULTILINE)
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