import re
regex = re.compile(r"Json(?<json_output>[\s\S\d\D\w\W]*)", flags=re.MULTILINE)
test_str = ("```json\n"
"[\n"
" {\n"
" \"Place\": {\n"
" \"Name\": \"Les Catacombes de Paris\",\n"
" \"Google_place_id\": \"ChIJVXealLU_xkcRja_At0z9AGY\",\n"
" \"City\": \"Paris\",\n"
" \"Region\": \"Île-de-France\",\n"
" \"Country\": \"France\",\n"
" \"Cultural_type\": \"Historical\",\n"
" \"Facts\": {\n"
" \"Historical_facts\": {\n"
" \"FACT_TYPE\": \"Did you know ?\",\n"
" \"FACTS\": [\n"
" \"Les Catacombes de Paris ont été créées à la fin du 18ème siècle pour résoudre le problème de surpeuplement des cimetières de la ville.\"\n"
" ],\n"
" \"INTERACTION\": [\n"
" \"Savez-vous pourquoi les catacombes ont été construites ?\"\n"
" ],\n"
" \"CATEGORY\": \"Historical_facts\"\n"
" },\n"
" \"Architectural_facts\": {\n"
" \"FACT_TYPE\": \"Fun fact\",\n"
" \"FACTS\": [\n"
" \"Les catacombes sont faites d’anciens tunnels de carrières transformés pour stocker les ossements de plus de six millions de Parisiens.\"\n"
" ],\n"
" \"INTERACTION\": [\n"
" \"Combien de personnes pensez-vous que les catacombes peuvent contenir ?\"\n"
" ],\n"
" \"CATEGORY\": \"Architectural_facts\"\n"
" },\n"
" \"Scientific_facts\": {\n"
" \"FACT_TYPE\": \"Wow\",\n"
" \"FACTS\": [\n"
" \"Les conditions dans les catacombes, qui sont fraîches et humides, permettent une bonne conservation des ossements.\"\n"
" ],\n"
" \"INTERACTION\": [\n"
" \"Que pensez-vous que l'humidité fait aux ossements ?\"\n"
" ],\n"
" \"CATEGORY\": \"Scientific_facts\"\n"
" },\n"
" \"Mystery_legends_facts\": {\n"
" \"FACT_TYPE\": \"Did you know ?\",\n"
" \"FACTS\": [\n"
" \"Une légende urbaine raconte qu’il y a un cinéma secret dans les catacombes !\",\n"
" \"Il paraîtrait que des groupes se réunissent ici pour regarder des films.\"\n"
" ],\n"
" \"INTERACTION\": [\n"
" \"Aimeriez-vous visiter un cinéma caché ?\",\n"
" \"Quel genre de film pensez-vous qu’ils projettent là-bas ?\"\n"
" ],\n"
" \"CATEGORY\": \"Mystery_legends_facts\"\n"
" }\n"
" }\n"
" }\n"
" }\n"
"]\n"
"```")
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