Я подозреваю, что ^ не работает так, как вы думаете, что делает это за пределами класса символов.
То, что вы говорите, это заменить все, что не является буквенно-цифровым с пустой строкой, или любым ведущим пространством. Я думаю, что вы хотите сказать, что пробелы в порядке, чтобы их не заменить - попробуйте переместить \s в класс [].
Ответ 5
Следующее регулярное выражение для включения пространства в текстовое поле.
Regex r = new Regex("^[a-zA-Z\\s]+");
r.IsMatch(textbox1.text);
Это отлично работает для меня.
Ответ 6
Кажется, есть две проблемы.
Вы используете ^ вне a [], который соответствует началу строки
Вы не используете * или +, что означает, что вы будете соответствовать только одному символу.
Я думаю, вам нужно следующее regex @ "([^ a-zA-Z0-9\s]) +"
Ответ 7
Огибающий внутри квадратных скобок означает все символы, кроме следующего диапазона. Вы хотите, чтобы за пределами квадратных скобок был огибающий.