Дополнительное примечание: ваше регулярное выражение не делает то, что вы описываете. Вы говорите максимум 1 пробел между словами. Для этого вам нужно переместить «\ s» из списка символов. Шаблон, который вы используете в настоящее время, позволяет «любое буквенно-цифровое или пространство от 1 до 40 раз», что позволяет использовать несколько последовательных пробелов. Вам нужно что-то больше, как следующее:
string regex = @"^(?:[A-Za-z]+\s?)+$";
Это означает, что «любой алфавитно-цифровой 1 или несколько раз, с последующим дополнительным пространством, все это дело один или несколько раз». Я не знаю, как ограничить всю строку до 40 символов, если вы заранее не знаете размер первого выражения. Может быть, это может быть достигнуто с выражением «смотреть за», но я не уверен. Возможно, вам придется сделать это за два шага.
Хороший вопрос. Я думал, что что-то не так с этим в группе. – Joel