import re
regex = re.compile(r"(https\:\\\/\\\/video2\.+)([a-zA-Z0-9]+)(\.com\\\/key\=+)([a-zA-Z0-9+-]+)(\,end\=[a-zA-Z0-9]+)(\,limit\=3\\\/data\=)([a-zA-Z0-9]+)(\.[a-zA-Z0-9]+)(\.[a-zA-Z0-9]+)(\.[a-zA-Z0-9]+)(\-mv\\\/speed\=[a-zA-Z0-9]+)(\\\/initial\_buffer\=[a-zA-Z0-9]+)(\\\/[a-zA-Z0-9]+)(\\\/[a-zA-Z0-9]+)(\\\/[a-zA-Z0-9]+)(\\\/[a-zA-Z0-9]+)(\.[a-zA-Z0-9]+)(\.mp4)", flags=re.MULTILINE)
test_str = "https:\\/\\/thumb-v-cl2.xhcdn.com\\/a\\/UpUWjQ0naov6PDPQutV2gQ\\/009\\/977\\/291\\/320x240.3.jpg\",\"platform\":\"android\",\"duration\":726,\"fallback\":{\"fallbackImageClass\":\"xplayer-fallback-image\"},\"hlsConfig\":{\"libSrc\":\"https:\\/\\/static-cl.xhcdn.com\\/js\\/hls.js\",\"maxBufferLength\":10,\"maxBufferSize\":10000000,\"maxMaxBufferLength\":120},\"sources\":{\"standard\":{\"vp9\":[{\"url\":\"https:\\/\\/video5.xhcdn.com\\/key=ArIS24azT212T7rlq2JYOA,end=1534017600,limit=3\\/data=107.12.224.13-mv\\/speed=294k\\/initial_buffer=657952\\/009\\/977\\/291\\/720p.vp9.webm\",\"fallback\":\"https:\\/\\/19-14.b.cdn13.com\\/009\\/977\\/291\\/720p.vp9.webm?cdn_creation_time=1534003200&cdn_ttl=14400&cdn_bw=294k&cdn_bw_fs=643k&cdn_cv_data=107.12.224.13-mv&cdn_hash=8f32053b3a204e397e1c509d8c55b8c6\",\"quality\":\"720p\",\"label\":\"720p\",\"type\":\"HD\"}],\"h265\":[{\"url\":\"https:\\/\\/video4.xhcdn.com\\/key=USM0qN+ZPKuWvDQ930QxQw,end=1534017600,limit=3\\/data=107.12.224.13-mv\\/speed=232k\\/initial_buffer=657952\\/009\\/977\\/291\\/720p.h265.mp4\",\"fallback\":\"https:\\/\\/19-13.b.cdn13.com\\/009\\/977\\/291\\/720p.h265.mp4?cdn_creation_time=1534003200&cdn_ttl=14400&cdn_bw=232k&cdn_bw_fs=643k&cdn_cv_data=107.12.224.13-mv&cdn_hash=7d666c372589a913757eecc6c2dc11da\",\"quality\":\"720p\",\"label\":\"720p\",\"type\":\"HD\"}],\"mp4\":[{\"url\":\"https:\\/\\/video2.xhcdn.com\\/key=BiIiv7GdsQSuPxg9SRIrbg,end=1534017600,limit=3\\/data=107.12.224.13-mv\\/speed=464k\\/initial_buffer=657952\\/009\\/977\\/291\\/720p.h264.mp4\",\"fallback\":\"https:\\/\\/19-11.b.cdn13.com\\/009\\/977\\/291\\/720p.h264.mp4?cdn_creation_time=1534003200&cdn_ttl=14400&cdn_bw=464k&cdn_bw_fs=643k&cdn_cv_data=107.12.224.13-mv&cdn_hash=7e82410ea292a37c1daaf359699d3953\",\"quality\":\"720p\",\"label\":\"720p\",\"type\":\"HD\"},{\"url\":\"https:\\/\\/video2.xhcdn.com\\/key=hpb+W+8whtZRJw+jfMdHUw,end=1534017600,limit=3\\/data=107.12.224.13-mv\\/speed=242k\\/initial_buffer=657952\\/009\\/977\\/291\\/480p.h264.mp4\",\"fallback\":\"https:\\/\\/19-11.b.cdn13.com\\/009\\/977\\/291\\/480p.h264.mp4?cdn_creation_time=1534003200&cdn_ttl=14400&cdn_bw=242k&cdn_bw_fs=643k&cdn_cv_data=107.12.224.13-mv&cdn_hash=49929359209c0d9c6cd7deb8e90ecd22\",\"quality\":\"480p\",\"label\":\"480p\",\"type\":\"\"},{\"url\":\"https:\\/\\/video2.xhcdn.com\\/key=7geyd-JfggobJpYnpAdaHw,end=1534017600,limit=3\\/data=107.12.224.13-mv\\/speed=120k\\/initial_buffer=657952\\/009\\/977\\/291\\/240p.h264.mp4\",\"fallback\":\"https:\\/\\/19-11.b.cdn13.com\\/009\\/977\\/291\\/240p.h264.mp4?cdn_creation_time=1534003200&cdn_ttl=14400&cdn_bw=120k&cdn_bw_fs=643k&cdn_cv_data=107.12.224.13-mv&cdn_hash=e251646a2b28b9802a3c6570550001bc\",\"quality\":\"240p\",\"label\":\"240p\",\"type\":\"\"}]}}"
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