using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\S+\[v=\""(customDate)-(\w+)\"",g=\""(\w+)\"",p=\""(\S+)\""\]\S+\/(returns_period|mpt_statistics_period\/\w+)\/(\w+)\/(\w+)";
string input = @"root/1-825-ReturnAndStatsCompositeAPI[v=""customDate-return"",g=""customDate"",p=""{""asOfDate"":""2016-12-31"",""startDate"":""2016-05-31""}""]/data/share_classes/array[1]/returns_period/net/cumulative
root/2-825-ReturnAndStatsCompositeAPI[v=""customDate-return"",g=""customDate"",p=""{""column"":""column2"",""asOfDate"":""2016-05-31"",""startDate"":""2016-01-31""}""]/data/share_classes/array[1]/returns_period/net/cumulative
root/2-825-ReturnAndStatsCompositeAPI[v=""customDate-return"",g=""customDate"",p=""{""column"":""column2"",""asOfDate"":""2016-05-31"",""startDate"":""2016-01-31""}""]/data/share_classes/array[1]/mpt_statistics_period/absolute/net/maximum_drawdown
root/3-825-ReturnAndStatsCompositeAPI[v=""customDate-index"",g=""customDate"",p=""{""column"":""column1"",""asOfDate"":""2016-12-31"",""startDate"":""2016-05-31""}""]/data/share_classes/array[0]/indices/indices_breakdown/array[0]/returns_period/net/cumulative
root/6-825-ReturnAndStatsCompositeAPI[v=""customDate-benchmark"",g=""customDate"",p=""{""column"":""column2"",""asOfDate"":""2016-05-31"",""startDate"":""2016-01-31""}""]/data/share_classes/array[1]/benchmark_types/benchmark_types_breakdown/array[3]/mpt_statistics_period/relative/net/bear_alpha
";
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