using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^file *""?([^"" ]*)""[\s\S]*?((?:{[\s\S]*?)*?}[\s\S]})";
string input = @"#############################################################################
# DB substitution file generated by http://github.com/epics-containers/ibek #
#############################################################################
file ""$(IOCSTATS)/db/iocAdminSoft.db"" {
pattern
{ ""IOC"" }
{ ""BL01T-EA-TST-02"" }
}
file ""$(IOCSTATS)/db/iocAdminScanMon.db"" {
pattern
{ ""IOC"" }
{ ""BL01T-EA-TST-02"" }
}
file ""$(ADSIMDETECTOR)/db/simDetector.template"" {
pattern
{ ""P"", ""R"", ""PORT"", ""TIMEOUT"", ""ADDR"" }
{ ""BL01T-EA-TST-02"", "":DET:"", ""DET.DET"", ""1"", ""0"" }
}
file ""$(ADCORE)/db/NDPva.template"" {
pattern
{ ""NDARRAY_PORT"", ""ADDR"", ""SCANRATE"", ""NDARRAY_ADDR"", ""ENABLED"", ""P"", ""R"", ""TIMEOUT"", ""PORT"" }
{ ""DET.DET"", ""0"", ""I/O Intr"", ""0"", ""0"", ""BL01T-EA-TST-02"", "":PVA:"", ""1"", ""DET.PVA"" }
}
file ""$(ADCORE)/db/NDStdArrays.template"" {
pattern
{ ""NDARRAY_PORT"", ""FTVL"", ""ADDR"", ""SCANRATE"", ""NELEMENTS"", ""NDARRAY_ADDR"", ""ENABLED"", ""P"", ""R"", ""TIMEOUT"", ""TYPE"", ""PORT"" }
{ ""DET.DET"", ""CHAR"", ""0"", ""I/O Intr"", ""1048576"", ""0"", ""0"", ""BL01T-EA-TST-02"", "":ARR:"", ""1"", ""Int8"", ""DET.ARR"" }
}
file ""simDetector.pvi.template"" {
pattern
{ ""P"", ""R"" }
{ ""BL01T-EA-TST-02"", "":DET:"" }
}
file ""NDPluginPva.pvi.template"" {
pattern
{ ""P"", ""R"" }
{ ""BL01T-EA-TST-02"", "":PVA:"" }
}
file ""NDPluginStdArrays.pvi.template"" {
pattern
{ ""P"", ""R"" }
{ ""BL01T-EA-TST-02"", "":ARR:"" }
}
";
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