import re
regex = re.compile(r"\$[^\$]*\$")
test_str = ("$hello$\n\n"
"$\n"
"hello\n"
"$\n\n"
".projection $I_{d,i} \\rightarrow M_{d,i} M_{d,0}$, where all the\n\n"
"\\begin{itemize}\n"
"\\item $M$ is atomic and finitely generated;\n"
"\\item $M$ is cancellative;\n"
"\\item $(M, \\le_L)$ and $(M, \\le_R)$ are lattices;\n"
"\\item there exists an element $\\Delta \\in M$, called {\\it Garside element}, such that the set \n"
"$L(\\Delta)= \\{ x \\in M; x\\le_L \\Delta\\}$ generates $M$ and is equal to $R(\\Delta)= \\{ x\\in M; \n"
"x\\le_R \\Delta\\}$.\n"
"\\end{itemize}\n\n"
"Using the fact that is atomic and that $L(\\Delta)= \n"
"\\{x \\in M; x \\le_L \\Delta\\} M \\pi_L(a) \\neq 1 a \\neq \n"
"1 k \\partial_L^k(a)=1 k$ be the\n")
subst = " "
result = regex.sub(subst, test_str)
if result:
print(result)
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