using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?:lazy_)?ngtxt\(([\""\'])((?:(?!\1)[^\\]|\\.)+)\1,\s*([\""\'])((?:(?!\3)[^\\]|\\.)+)\3,\s*(?:.+?)\)";
string input = @"* ngtxt('i am in single-quotes', 'i am in single-quotes 2', foo)
* ngtxt('i have \' an escaped single-quote within single-quotes', 'i have \' an escaped single-quote within single-quotes 2', foo)
* ngtxt('i have a ""double-quote"" in single-quotes', 'i have a ""double-quote"" in single-quotes 2', foo)
* ngtxt(""i am in double-quotes"", ""i am in double-quotes 2"", foo)
* ngtxt(""i am in double-quotes with single 'quotes'"", ""i am in double-quotes with single 'quotes' 2"", foo)
* ngtxt('i have an escaped double-quote \"" within double-quotes', 'i have an escaped double-quote \"" within double-quotes 2', foo)
* ngtxt('i am singular in single-quotes', ""i am plural in double-quotes"", foo)
";
RegexOptions options = RegexOptions.Multiline;
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