using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"[\t\u000b\u000c\ufeff\p{Space_Separator}\n\r\u2028\u2029]|\/\*(?:(?!\*\/)[^]*?)?\*\/|<!--(?:(?!-->)[^]*?)?-->|\/\/[^\n\r\u2028\u2029]*|#?(?:[$_\p{ID_Start}]|\\(?:u[0-9a-fA-F]{4}|u\{(?:(?:10|[0-9])[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})\}))(?:[$\p{ID_Continue}]|\\(?:u[0-9a-fA-F]{4}|u\{(?:(?:10|[0-9])[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})\}))*|(?:\?\.(?![0-9])|\{|\(|\)|\[|\]|;|,|~|:|\.\.\.|\.|<<=|<<|<=|<|>>>=|>>>|>>=|>>|>=|>|===|==|=>|=|!==|!=|!|\*\*=|\*\*|\*=|\*|%=|%|\+\+|\+=|\+|--|-=|-|&&=|&&|&=|&|\|\|=|\|\||\|=|\||\?\?=|\?\?|\?|\^=|\^)|(?:(?:0|[1-9](?:_?(?:[0-9](?:_[0-9])*)+)?|0[0-7]*[89][0-9]+)\.?(?:[0-9](?:_[0-9])*)*(?:[eE][+-]?(?:[0-9](?:_[0-9])*)+)?)|(?:\.(?:[0-9](?:_[0-9])*)+(?:[eE][+-]?(?:[0-9](?:_[0-9])*)+)?)|(?:(?:0|[1-9](?:_?(?:[0-9](?:_[0-9])*)+)?|0[0-7]*[89][0-9]+)?[eE][+-]?(?:[0-9](?:_[0-9])*)+)|(?:0|[1-9](?:_?(?:[0-9](?:_[0-9])*)+)?)n|(?:0[bB](?:[01](?:_[01])*)+|0[oO](?:[0-7](?:_[0-7])*)+|0[xX](?:[0-9a-fA-F](?:_[0-9a-fA-F])*)+)n?|0[0-7]+|([""'])(?:(?!\1)[^\\\n\r]|\\(?:['""\\bfnrtv]|[^'""\\bfnrtv0-9xu\n\r\u2028\u2029]|0(?![0-9])|0(?=[89])|[1-7](?![0-7])|[0-3][0-7]{1,2}|[4-7][0-7]|[89]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u\{(?:(?:10|[0-9])[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})\})|\\(?:\r\n|\n|\r|\u2028|\u2029))*\1|`(?:\$(?!\{)|\\(?:['""\\bfnrtv]|[^'""\\bfnrtv0-9xu\n\r\u2028\u2029]|0(?![0-9])|x[0-9a-fA-F]{2}|(?:u[0-9a-fA-F]{4}|u\{(?:(?:10|[0-9])[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})\}))|\\(?:0[0-9]|[1-9]|x(?![0-9a-fA-F])|x[0-9a-fA-F](?![0-9a-fA-F])|u(?![0-9a-fA-F{])|u[0-9a-fA-F]{1,3}(?![0-9a-fA-F])|u\{(?![0-9a-fA-F])|u\{(?:1[1-9a-fA-F][0-9a-fA-F]{4}|[2-9a-fA-F][0-9a-fA-F]{5}|[0-9a-fA-F]{7,})(?![0-9a-fA-F])|u\{(?:(?:10|[0-9])[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})(?![0-9a-fA-F}]))|\\(?:\r\n|\n|\r|\u2028|\u2029)|\r\n|[^`\\$])*(?:`|\$\{)|#![^\n\r\u2028\u2029]*|\/(?:[^\n\r\u2028\u2029*\\/[]|\\[^\n\r\u2028\u2029]|\[(?:[^\n\r\u2028\u2029\]\\]|\\[^\n\r\u2028\u2029])*\])(?:[^\n\r\u2028\u2029\\/[]|\\[^\n\r\u2028\u2029]|\[(?:[^\n\r\u2028\u2029\]\\]|\\[^\n\r\u2028\u2029])*\])*\/[$\p{ID_Continue}]*";
string input = @"const a = 5;
const b = `${a} ${a}`;";
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