using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^(?<namespace>(?:[a-zA-Z][a-zA-Z0-9_-]*)(?:\.[a-zA-Z][a-zA-Z0-9_-]*)+)::(?<rm_publisher>[a-zA-Z]+)-(?<rm_package>[a-zA-Z][a-zA-Z0-9_]+)-(?<rm_class>[a-zA-Z]+)\.(?<concept_name>[a-zA-Z][a-zA-Z0-9_-]+)\.(?<release_version>v\d+(?:\.\d+){0,2})(?:-(?<version_status>[a-zA-Z0-9]+))?(?:\.(?<build_count>\d))?$";
string input = @"Valid examples:
org.openehr.test::openehr-ehr-comp.test.v1.0.1-alpha.1
org.openehr.test::openehr-ehr-comp.test.v1
Invalid examples:
org.openehr.test
openehr-ehr-comp.test.v1
org.openehr.test::openehr-ehr-comp.test.v1.0.1-alpha.1c
org.openehr.test::openehr-ehr-comp.test.v1.0.1+alpha.1";
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