import re
regex = re.compile(r"^[\s]{0,2}\[([\d]*)\]:", flags=re.MULTILINE)
test_str = ("---\n"
" # Meta Data\n"
" Title: Test Set for Mark Down Reference Linking\n"
" Summary: Test Set for Mark Down Reference Linking\n"
" Author: Royi \n\n"
" # Settings\n"
" settings:\n"
" enable_uml: true\n"
" image_path_conversion: base64\n"
" markdown_extensions:\n"
" - markdown.extensions.footnotes\n"
" - markdown.extensions.fenced_code\n"
" - markdown.extensions.tables\n"
" - markdown.extensions.admonition\n"
" - markdown.extensions.toc:\n"
" title: Table of Contents\n"
" toc_depth: 2-3\n"
" - pymdownx.arithmatex:\n"
" generic: true\n"
" smart_dollar: false\n"
" allow_css_overrides: true\n"
"---\n\n\n"
"# Test Set for Mark Down Reference Linking\n\n"
"[TOC]\n\n"
"## Scope of the Document\n\n"
"Just some text as a test set.\n\n\n"
"### Some ASCII Graphics\n\n"
"Laser beam.\n\n"
"```\n"
" \n"
" Target \n"
" \n"
" +--------------------------------+ \n"
" | | \n"
" | | \n"
" | | \n"
" | | \n"
" | -- | \n"
" | -/ | \n"
" | --/ | \n"
" | -/ | \n"
" | --/ | \n"
" +--------------------------------+ \n"
" -/ \n"
" --/ \n"
" <-------------------/-----------------------> \n"
" --/ \n"
" -/ \n"
" --/ \n"
" +--------/ \n"
" | -/| \n"
" | -/ | \n"
" | | Laser Beam\n"
" +------+ \n"
"```\n\n"
"## Some List\n\n"
" * Train Set - Set used for training the ML model (For instance optimize the model parameters [For Parametric Model])\n"
" * Test Set - Set used to evaluate results.\n"
" * Prediction - Prediction of velocity given a measurement.\n\n"
"Implicit / Explicit Assumptions[^001]:\n\n"
" * The laser beam is eye safe.\n"
" * Just some information[^002].\n\n"
"### Some Existing Links\n\n"
"The results are pretty good in [RMSE][001] / [MAE][002].\n\n\n"
"## Some Text to Test\n\n"
"Free text, **bold text**, *italic text*, [__bold text__][003] or _italic text_.\n"
"Also, `Mono Spaced Text` and regular [boring text][04].\n\n"
"Some [Link](https://www.wikipedia.com) and [Reference Link][1].\n\n"
"Some list...\n\n"
" * Examining Deep Learning (DL) Based Methods \n"
" Always some text on [Deep][1] Learning.\n"
" * Hyper Parameters \n"
" Adding an exhaustive search of the optimal Hyper Parameters.\n\n\n"
" [001]: https://en.wikipedia.org/wiki/Root-mean-square_deviation \"Wikipedia - RMSE\"\n"
" [002]: https://en.wikipedia.org/wiki/Mean_absolute_error \"Wikipedia - MAE\"\n\n"
"[003]: https://something.com\n"
" [04]: https://somewhere.com\n\n"
" [5]: Should not be selected!\n"
" [6]: Should not be selected!\n\n\n"
" [^001]: Just a simple assumption reference.\n"
" [^002]: Just another simple assumption reference.\n\n\n\n\n"
"[1]: https://www.wikipedia.com")
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