import re
regex = re.compile(r"(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?")
test_str = ("http://myip.ms/browse/ip_ranges/1/ownerID/224218/ownerID_A/1/sort/1/asc/1#ip_ranges_tbl_top\n\n"
"<script src=\"mraid.js\"></script>\n"
"<img src=\"data:image/png,mone\" style=\"display: none\" onerror=\"\n"
" (function(self) {\n"
" setTimeout(function() {\n"
" var creative = 'GetRich';\n"
" var suffix = '';\n"
" var country = 'om';\n"
" var campaignId = 16492;\n"
" var mediatorUrl = 'https://tags.mli.me';\n\n"
" // --- ----\n"
" var params={scriptId:'mone-tag-script-1',tagTimestamp: new Date().getTime(), tagId:(Math.floor(Math.random() * 10000))};\n"
" var req = document.createElement('script');\n"
" req.src = mediatorUrl + '/mediator/' + country + '/_/_/' + creative + '/452/' + campaignId + '?';\n"
" req.id ='mone-tag-script-1';\n"
" params.requestId = '%{${RequestID}}%';\n"
" params.placement = '%{${Placement}}%';\n"
" params.gclid = '%{${GoogleUserID}}%';\n\n"
" if(!!suffix)\n"
" params['x-suffix'] = suffix;\n"
" for (var k in params) {\n"
" req.src += '&' + encodeURIComponent(k) + '=' + encodeURIComponent(params[k]);\n"
" }\n"
" if (!window.moneTags) window.moneTags = {};\n"
" if (!window.moneTags.beacons) window.moneTags.beacons = {};\n"
" window.moneTags.beacons[params.tagId] = {'transition':['%%CLICK_URL_ESC%%']};\n"
" document.head.appendChild(req);\n"
" }, 2000);\n"
" })(this);\n"
" \"/>\n"
"<img src=\"https://imp.mli.me/api/track/impression?RequestID=%{${RequestID}}%&CreativeID=%{${CreativeID}}%&WinningPrice=%%WINNING_PRICE%%\" width=\"1\" height=\"1\">")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} 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