using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\\begin{(align|equation)\*?}(?P<eq>(.)+?)\\end{(align|equation)\*?}";
string input = @"This is a test of the regular expression. Below is an equation with a label on the same line as begin and an equation on a new line.
\begin{align}\label{eq:some_label}
E = m * c^2
\end{align}
Below is an equation
\begin{equation}
P_k(t) = K (T_2(t) - T_o(t))
\end{equation}
Below is both and align and equation with starred variants:
\begin{align*}
E = m * c^2
\end{align*}
\begin{equation*}
E = m * c^2
\end{align*}
And on one line:
\begin{equation*}E = m * c^2\end{align*}
And another environment
\begin{figure}
...
\end{figure}";
RegexOptions options = RegexOptions.Multiline | RegexOptions.Singleline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx