|
|
|
@ -5,10 +5,17 @@ from typing import Optional
|
|
|
|
|
def parse_code_block(string: str, lang: str) -> Optional[str]:
|
|
|
|
|
code_pattern = fr"```{lang}\n(.*?)\n```"
|
|
|
|
|
match = re.search(code_pattern, string, re.DOTALL)
|
|
|
|
|
|
|
|
|
|
if match:
|
|
|
|
|
return match.group(1)
|
|
|
|
|
else:
|
|
|
|
|
return parse_first_func(string, lang)
|
|
|
|
|
|
|
|
|
|
generic_code_pattern = r"```\n(.*?)\n```"
|
|
|
|
|
match = re.search(generic_code_pattern, string, re.DOTALL)
|
|
|
|
|
|
|
|
|
|
if match:
|
|
|
|
|
return match.group(1)
|
|
|
|
|
|
|
|
|
|
return parse_first_func(string, lang)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def parse_first_func(code: str, lang: str) -> Optional[str]:
|
|
|
|
|