using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^/foo/bar/+(?:(?:find|count)/*$(*SKIP)(*FAIL)|([^/\r\n\t]+))/*$";
string input = @"--------------------must NOT get as id (reseved key words)
/foo/bar/count
/foo/bar/find
--------------------must NOT get as id (not present)
/foo/bar/
--------------------must NOT get as id (not present tab test)
/foo/bar/
--------------------must NOT get as id (not present line break test)
/foo/bar/
--------------------must NOT get as id (not present tab, line break, multiple slashes test)
/foo/bar// /
/
//
--------------------must get as id
/foo/bar/1
/foo/bar/1c
/foo/bar/c1
/foo/bar/sku
/foo/bar/countfind
/foo/bar/findcount
/foo/bar/skucount
/foo/bar/skufind
/foo/bar/countsku
/foo/bar/findsku
/foo/bar/coun
/foo/bar/fin
/foo/bar/ount
/foo/bar/ind
/foo/bar/skucoun
/foo/bar/skufin
/foo/bar/finsku
/foo/bar/counsku
--------------------must get as id (unnecessary slash test)
/foo/bar/1/
/foo/bar/1c/
/foo/bar/c1/
/foo/bar/sku/
/foo/bar/countfind/
/foo/bar/findcount/
/foo/bar/skucount/
/foo/bar/skufind/
/foo/bar/countsku/
/foo/bar/findsku/
/foo/bar/coun/
/foo/bar/fin/
/foo/bar/ount/
/foo/bar/ind/
/foo/bar/skucoun/
/foo/bar/skufin/
/foo/bar/finsku/
/foo/bar/counsku/
--------------------must get as id (unnecessary|invalid slashed test)
/foo/bar///1///
/foo/bar///1c///
/foo/bar///c1///
/foo/bar///sku///
/foo/bar///countfind///
/foo/bar///findcount///
/foo/bar///skucount///
/foo/bar///skufind///
/foo/bar///countsku///
/foo/bar///findsku///
/foo/bar///coun///
/foo/bar///fin///
/foo/bar///ount///
/foo/bar///ind///
/foo/bar///skucoun///
/foo/bar///skufin///
/foo/bar///finsku///
/foo/bar///counsku///";
RegexOptions options = RegexOptions.Multiline | 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