Test for valid characters in .NET regex named capturing group name

CSharp · Console

/Program.cs

using System;
using System.Text.RegularExpressions;
using System.Collections.Generic;

public class Program
{
	public static void Main()
	{
		List<string> listOfNonPunctuationCharacters = new List<string>();
		for (int i = 0; i < 128; i++)
		{
			//if(!Regex.IsMatch(((char)i).ToString(),"(?i)[a-z0-9]"))
			//Console.WriteLine((char)i + ": " + char.IsPunctuation((char)i));	
			if (char.IsPunctuation((char)i))
				listOfNonPunctuationCharacters.Add(((char)i).ToString());
		}

		string groupName;
		foreach (string character in listOfNonPunctuationCharacters)
		{
			groupName = "group" + character + "name";
			try
			{
				Console.WriteLine("groupName: " + groupName);
				Regex r = new Regex("123 (?<" + groupName + ">ABC) 123");
				Match m = r.Match("123 ABC 123");
				Console.WriteLine("Captured group: " + m.Groups[groupName].Value);
			}
			catch (Exception e)
			{
				Console.WriteLine(e.Message.ToString());
			}
		}
	}
}
;