using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"({})\1|[{](|\s*?[^\s{}]+?\s*?|\s*?\S+?\(.*?\)\s*?|\s*?['][^']+?[']\s*?|\s*?[""][^""]+?[""]\s*?|\s*?[""][^""]+?[""]\.\S+?\(.*?\)\s*?|\s*?['][^']+?[']\.\S+?\(.*?\)\s*?)(?:!(\S+?))?[}]";
string input = @"{k} must-match
{} jhtgj {} must-match
{ } not-match
'""{firstName} {lastName}"" <{email}>'
{0.concat(""8a b c d e"", 6)} must-match
s df s sd{""one fielslkein 897sd'f8'97f 89s(*Y*&Sc {}d name"".toFixed(7 , 8)} must-match
s df s sd{'one fielslkein ""897sd""f897f 89s(*Y*&Sc {}d name'.toFixed(7 , 8)} must-match
sd{0.concat(""8a b c d e"", 6)} must-match
ascdac{ ""one fieldname"" } must-match
ascdac{ ""onefi eldname"".kk(kk, ""dd"") } must-match
{onefieldname.toFixed(7 , 8)} must-match
dfgsdg { ""onefieldname"".toFixed(7 , 8)} must-match
{onefieldname: ""toFixed(7 , 8)""} not-match
{""onefieldname"": ""toFixed(7 , 8)""} not-match
{ ""onefiel dname"" : ""toFixed(7 , 8)""} not-match
{ ""onefiel dname"": 8} not-match
{ ""o dna"" : {onefi eldname.l(7 , 8)} } not-match
{ ""o dna"" : {""onefi eldname"".l(7 , 8)} } match-inner
{ ""f dna"" : {""onefi eldname"".toFixed(7 , 8) }} match-inner
{ ""f dna"" : { ""onefi eldname"".toFixed(7 , 8) }} match-inner
{ ""o dme"" : {onefieldname.toFixed(7 , 8)} } match-inner
{ ""on dname"" : { onefieldname.toFixed(7 , 8)} } match-inner
{ {}: ""{}"" }";
foreach (Match m in Regex.Matches(input, pattern))
{
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