using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<!\\|{)(?:\\\\)*\$({\$)?\w+(?(1)})";
string input = @"${$var1} bla ${$var2} bla ${$var2} foo bar ${$var3
\${$var2} bla \\\${$var2} bla $var1
\\${$var1} bla \\${$var2} bla \${$var2}
\\\{$var2} bla \\${$var2} bla \${$var2}
$var1 bla \$var1 bla \\$var1 bla \\\$var1
\$var1 bla \\$var1 bla \\\$var1
\\$var1 bla \\\$var1 bla \$var1 bla
\\\$var1 bla \\$var1 bla \\\$var1";
RegexOptions options = RegexOptions.CultureInvariant;
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