using System.Text.RegularExpressions;
private static readonly Regex _regex = new Regex(@"(?<Line>.*) \((?<City>.*)\) Water Network Pumping");
public static void Main()
var regExpressions = new[]{
new Regex(@"(?<Line>.*) \((?<City>.*)\) Water Network Pumping"),
new Regex(@"(?<Line>.*)( \((?<City>.*)\))? Water Network Pumping"),
foreach (var regex in regExpressions)
Console.WriteLine(regex.ToString());
CheckRegex(@"Abingdon Road (Oxford) Water Network Pumping", regex);
CheckRegex(@"Adderbury Water Network Pumpingg", regex);
private static void CheckRegex(string value, Regex regex)
var groups = regex.Match(value).Groups;
foreach (string groupName in regex.GetGroupNames())
Console.WriteLine("Group: {0}, Value: {1}", groupName, groups[groupName].Value);