import re
regex = re.compile(r"(\{(?:.|\n)*\})")
test_str = ("// API callback\n"
"google.search.Search.apiary2387({\n"
" \"cursor\": {\n"
" \"currentPageIndex\": 0,\n"
" \"estimatedResultCount\": \"4490\",\n"
" \"moreResultsUrl\": \"http://www.google.com/cse?oe=utf8&ie=utf8&source=uds&q=ssh&start=0&sort=&cx=013305635491195529773:0ufpuq-fpt0\",\n"
" \"resultCount\": \"4,490\",\n"
" \"searchResultTime\": \"0.22\",\n"
" \"pages\": [\n"
" {\n"
" \"label\": 1,\n"
" \"start\": \"0\"\n"
" },\n"
" {\n"
" \"label\": 2,\n"
" \"start\": \"1\"\n"
" },\n"
" {\n"
" \"label\": 3,\n"
" \"start\": \"2\"\n"
" },\n"
" {\n"
" \"label\": 4,\n"
" \"start\": \"3\"\n"
" },\n"
" {\n"
" \"label\": 5,\n"
" \"start\": \"4\"\n"
" },\n"
" {\n"
" \"label\": 6,\n"
" \"start\": \"5\"\n"
" },\n"
" {\n"
" \"label\": 7,\n"
" \"start\": \"6\"\n"
" },\n"
" {\n"
" \"label\": 8,\n"
" \"start\": \"7\"\n"
" },\n"
" {\n"
" \"label\": 9,\n"
" \"start\": \"8\"\n"
" },\n"
" {\n"
" \"label\": 10,\n"
" \"start\": \"9\"\n"
" }\n"
" ]\n"
" },\n"
" \"context\": {\n"
" \"title\": \"Pastebin Active\",\n"
" \"total_results\": \"0\",\n"
" \"facets\": []\n"
" },\n"
" \"results\": [\n"
" {\n"
" \"GsearchResultClass\": \"GwebSearch\",\n"
" \"cacheUrl\": \"http://www.google.com/search?q=cache:PBL2A25kpZoJ:pastebin.com\",\n"
" \"clicktrackUrl\": \"https://www.google.com/url?q=http://pastebin.com/u/ssh&sa=U&ved=0ahUKEwiO4fjNpovMAhWBPxoKHYJXAS4QFggEMAA&client=internal-uds-cse&usg=AFQjCNHczEhDXdcUnRZhpArEeSiHfjwMJA\",\n"
" \"content\": \"BitBucket - Backup your code in the cloud! Host unlimited private projects, for free\\n. SIGN UP takes 10 seconds, and it's free! Guest ...\",\n"
" \"contentNoFormatting\": \"BitBucket - Backup your code in the cloud! Host unlimited private projects, for free\\n. SIGN UP takes 10 seconds, and it's free! Guest ...\",\n"
" \"formattedUrl\": \"pastebin.com/u/\\u003cb\\u003essh\\u003c/b\\u003e\",\n"
" \"title\": \"\\u003cb\\u003eSsh's\\u003c/b\\u003e Pastebin - Pastebin.com\",\n"
" \"titleNoFormatting\": \"Ssh's Pastebin - Pastebin.com\",\n"
" \"unescapedUrl\": \"http://pastebin.com/u/ssh\",\n"
" \"url\": \"http://pastebin.com/u/ssh\",\n"
" \"visibleUrl\": \"pastebin.com\",\n"
" \"richSnippet\": {\n"
" \"cseImage\": {\n"
" \"src\": \"http://pastebin.com/i/facebook.png\"\n"
" },\n"
" \"metatags\": {\n"
" \"fbAppId\": \"231493360234820\",\n"
" \"ogTitle\": \"Ssh's Pastebin - Pastebin.com\",\n"
" \"ogType\": \"article\",\n"
" \"ogUrl\": \"http://pastebin.com/u/ssh\",\n"
" \"ogImage\": \"http://pastebin.com/i/facebook.png\",\n"
" \"ogSiteName\": \"Pastebin\",\n"
" \"viewport\": \"width=device-width, maximum-scale=1.0, user-scalable=no\"\n"
" }\n"
" }\n"
" }\n"
" ]\n"
"}\n"
");")
match = regex.search(test_str)
if match:
print(f"Match 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