import re
regex = re.compile(r"(?:[(|\s';\",=])((?:http|\/|\\){1}(?:[\/:,~\\.\-\–\d_@%A-Za-z\p{L}\p{M}\p{N}]{10,}\.(?:jpg|jpeg|jpe|png|webp|svg|gif|css|js)))(?=(?:|\?|\"|&|,|\s|'|\)|\||\\|}))", flags=re.UNICODE)
test_str = (" <p custom-attr=http://example.org/wp-content/uploads/2018/05/brands.png>\n\n"
" [16] => https://www.mueblesexpress.com.uy/wp-content/plugins/divi-bars/assets/js/snap.svg-min.js\n\n"
"/wp-content/plugins/optimole-wp/assets/img/log4.pngRANDOMSTUFF\n\n"
"http://96e363596fbe.ngrok.io/wp-includes/js/hoverintent-js.min.png-random.css\n\n"
"http://example.org/wp-includes/js/assets/whatever.jpg.png.css.js ';\n\n"
"http://example.org/wp-content/themes/test/assets/images/header.pnghttps://example.org/wp-content/themes/test/assets/images/header.png \n\n"
"http://example.org/wp-content/themes/test/assets/images/header.pnghttp://example.org/wp-content/themes/test/assets/images/header.png \n\n"
"https://test123.i.optimole.com/F7bDy7k-fXTTyV95/f:js/q:auto/m:0/http://example.org/wp-content/plugins/images/img.jpg\n\n"
" [17] => http://96e363596fbe.ngrok.io/wp-includes/js/hoverintent-js.min.js\n"
" [18] => http://96e363596fbe.ngrok.io/wp-includes/js/admin-bar.min.js\n"
" [19] => http://96e363596fbe.ngrok.io/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js\n"
" [20] => http://96e363596fbe.ngrok.io/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js\n"
" [21] => http://96e363596fbe.ngrok.io/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js\n"
" [22] => http://96e363596fbe.ngrok.io/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js\n"
" [23] => http://96e363596fbe.ngrok.io/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js\n"
" [24] => http://96e363596fbe.ngrok.io/wp-content/plugins/smart-search-for-woocommerce/assets/js/se-widgets.js\n"
" [25] => http://96e363596fbe.ngrok.io/wp-content/themes/twentynineteen/js/priority-menu.js\n"
" [26] => http://96e363596fbe.ngrok.io/wp-content/themes/twentynineteen/js/touch-keyboard-navigation.js\n"
" [27] => http://96e363596fbe.ngrok.io/wp-includes/js/wp-embed.min.js\n\n\n\n"
"http://example.org/wp-content/themes/test/assets/images/header.png \n"
" http://example.org/wp-content/themes/test/assets/images/header.jpeg\n"
"http://example.org/wp-content/plugins/optimole-wp/assets/img/logo1.png \n"
" http://example.org/wp-content/plugins/optimole-wp/assets/img/logo2.png?width=500&cr=small\n"
" http://example.org/wp-content/plugins/optimole-wp/assets/img/logo3.png%3Fwidth%3D500%26cr%3Dsmall\n"
" http://example.org/wp-content/uploads/2018/05/umlauts_image_äöü.jpg\n"
" http://example.org/uploads/2018/05/umlauts_image_a\\u0308o\\u0308u\\u0308.jpg\n"
" //example.org/wp-content/themes/test/assets/images/header2.png \n"
" //example.org/wp-content/themes/test/assets/images/header2.jpeg\n"
" //example.org/wp-content/plugins/optimole-wp/assets/img/logo4.png \n"
" //example.org/wp-content/plugins/optimole-wp/assets/img/logo2.png?width=500&cr=small\n"
" //example.org/wp-content/plugins/optimole-wp/assets/img/logo3.png%3Fwidth%3D500%26cr%3Dsmall\n"
" //example.org/wp-content/uploads/2018/05/umlauts_im4age_äöü.jpg\n"
" //example.org/uploads/2018/05/umlauts_5image_a\\u0308o\\u0308u\\u0308.jpg\n"
" /wp-content/themes/test/assets/images/header4.png \n"
" /wp-content/themes/test/assets/images/header7.jpeg\n"
" /wp-content/plugins/optimole-wp/assets/img/logo9.png \n"
" /wp-content/plugins/optimole-wp/assets/img/lo2go.png?width=500&cr=small\n"
" /wp-content/plugins/optimole-wp/assets/img/log4.png%3Fwidth%3D500%26cr%3Dsmall\n"
" \n"
" /wp-content/uploads/2018/05/umlau1ts_image_äöü.jpg\n\n"
" /wp-content/uploads/2018/05/umlau1ts_image_a\\u0308o\\u0308u\\u0308.jpg")
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