using System.Text.RegularExpressions;
public static void Main()
var start = @"a-zA-Z\d#@";
var then = start + @"\-\. ";
var regex = new Regex($@"[{start}][{then}]{{1,149}}");
public static void Test(Regex regex)
const int stringLength = 150;
var start = new string[]{"1", "a", "#", "@", };
var then = new string[]{"1", "a", "#", "@", "-", ".", " "};
for (var i = 0; i < numTests; ++i)
var builder = new StringBuilder(start[0]);
for (var j = 1; j < stringLength; ++j)
var r = rand.Next() % then.Length;
var test = builder.ToString();
Console.WriteLine($"{test} {regex.IsMatch(test)}");