using System.Text.RegularExpressions;
public static void Main()
string[] patterns = new string[]{"25_", "3__", "%4%"};
Console.WriteLine("patterns: " + printArray(patterns));
for (int i = 0; i < patterns.Length; i++)
patterns[i] = "^" + patterns[i].Replace("_", "[0-9]{1}").Replace("%", "[0-9]*") + "$";
Console.WriteLine("patterns: " + printArray(patterns));
string[] candidates = new string[]{"12345678", "123", "", "-12341234", "asdf", "123412341234", "251", "30", "301", "4", "401", "456978573895", "4T"};
for (int i = 0; i < candidates.Length; i++)
for (int k = 0; k < patterns.Length; k++)
Regex regex = new Regex(patterns[k]);
Match match = regex.Match(candidates[i]);
Console.WriteLine(candidates[i] + " matches pattern " + patterns[k] + ": " + match.Success);
private static string printArray(string[] arr)
return "{" + string.Join(",", arr) + "}";