import re
regex = re.compile(r"(?<=\W)\$[a-zA-Z_\\\{\}= +']+\$", flags=re.MULTILINE)
test_str = ("We try to quantitatively capture these characteristics by defining a set of indexes, which can be computed using the mosaic image and the corresponding ground truth:\n"
"\\begin{itemize}\n"
" \\item $\\mu_{A_T}$ and $\\sigma_{A_T}$, the mean and standard deviation of the tiles area $A_T$, respectively;\n"
" \\item $\\rho_\\text{filler}$, the ratio between the filler area and the overall mosaic are, computed as $\\rho_\\text{filler}=\\frac{\\sum_{T \\in \\mathcal{T} A_T}}{A}$, being $A$ the area of the mosaic;\n"
" \\item \\todo{does it worth?};\n"
" \\item \\todo{does it worth?};\n"
" \\item $\\mu_{C_T}$, the mean of the tiles \\emph{color dispersion} $C_T$, being $C_T = \\sigma_R+\\sigma_G+\\sigma_B$, where $\\sigma_R$, $\\sigma_G$ and $\\sigma_B$ are the standard deviation of the red, green and blue channel values of the pixels within the tile $T$.\n"
"After applying a method to an image, we compare the segmented image (i.e., the result) against the ground truth and assess the performance according to the following three metrics:\n"
"\\begin{itemize}\n"
" \\item average tile precision $P$\n"
" \\item average tile recall $R$\n"
" \\item tile count error $C$\n"
"\\end{itemize}\n"
"Let $T$ be a tile on the ground truth $\\mathcal{T}$ with area $A_T$.\n"
"Let $T'$ be the tile in the segmented image which mostly overlaps $T$ and let $A_{T'}$ be the area of $T$; let $A_{T \\cap T'}$ be the overlapping area between $T$ and $T'$.\n"
"Let $n$ and $n'$ the number of tiles respectively in the ground truth and in the segmented image.\n"
"Metrics are defined as:\n"
"\\begin{align}\n"
" P &= \\frac{1}{n} \\sum_{T \\in \\mathcal{T}} \\frac{A_{T \\cap T'}}{A_{T'}} \\\\\n"
" R &= \\frac{1}{n} \\sum_{T \\in \\mathcal{T}} \\frac{A_{T \\cap T'}}{A_T} \\\\\n"
" C &= \\frac{|n-n'|}{n}\n"
"\\end{align}\n"
"We try to quantitatively capture these characteristics by defining a set of indexes, which can be computed using the mosaic image and the corresponding ground truth:\n"
"\\begin{itemize}\n"
" \\item $\\mu_{A_T}$ and $\\sigma_{A_T}$, the mean and standard deviation of the tiles area $A_T$, respectively;\n"
" \\item $\\rho_\\text{filler}$, the ratio between the filler area and the overall mosaic are, computed as $\\rho_\\text{filler}=\\frac{\\sum_{T \\in \\mathcal{T} A_T}}{A}$, being $A$ the area of the mosaic;\n"
" \\item \\todo{does it worth?};\n"
" \\item \\todo{does it worth?};\n"
" \\item $\\mu_{C_T}$, the mean of the tiles \\emph{color dispersion} $C_T$, being $C_T = \\sigma_R+\\sigma_G+\\sigma_B$, where $\\sigma_R$, $\\sigma_G$ and $\\sigma_B$ are the standard deviation of the red, green and blue channel values of the pixels within the tile $T$.\n"
"After applying a method to an image, we compare the segmented image (i.e., the result) against the ground truth and assess the performance according to the following three metrics:\n"
"\\begin{itemize}\n"
" \\item average tile precision $P$\n"
" \\item average tile recall $R$\n"
" \\item tile count error $C$\n"
"\\end{itemize}\n"
"Let $T$ be a tile on the ground truth $\\mathcal{T}$ with area $A_T$.\n"
"Let $T'$ be the tile in the segmented image which mostly overlaps $T$ and let $A_{T'}$ be the area of $T$; let $A_{T \\cap T'}$ be the overlapping area between $T$ and $T'$.\n"
"Let $n$ and $n'$ the number of tiles respectively in the ground truth and in the segmented image.\n"
"Metrics are defined as:\n"
"\\begin{align}\n"
" P &= \\frac{1}{n} \\sum_{T \\in \\mathcal{T}} \\frac{A_{T \\cap T'}}{A_{T'}} \\\\\n"
" R &= \\frac{1}{n} \\sum_{T \\in \\mathcal{T}} \\frac{A_{T \\cap T'}}{A_T} \\\\\n"
" C &= \\frac{|n-n'|}{n}\n"
"\\end{align}")
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