Regex, который принимает только числа (0-9) и символы NO

Мне нужно регулярное выражение, которое будет принимать только цифры от 0-9 и больше ничего. Нет букв, нет символов.

Я думал, что это сработает:

^[0-9] 

или даже

 \d+ 

но они принимают символы: ^, $, (,) и т. д.

Я думал, что оба вышеперечисленных выражения сделают трюк, и я не уверен, почему он принимает этих персонажей.

РЕДАКТИРОВАТЬ:

Это именно то, что я делаю:

  private void OnTextChanged(object sender, EventArgs e) { if (!System.Text.RegularExpressions.Regex.IsMatch("^[0-9]", textbox.Text)) { textbox.Text = string.Empty; } } 

Это позволяет персонажам, упомянутым выше.

Ваше регулярное выражение ^[0-9] соответствует ^[0-9] значению, начинающемуся с цифры, включая строки типа «1A». Чтобы избежать частичного совпадения, добавьте $ до конца:

 ^[0-9]*$ 

Это принимает любое количество цифр, в том числе ни одного. Чтобы принять одну или несколько цифр, измените значение * на + . Чтобы принять ровно одну цифру, просто удалите * .

UPDATE: вы перепутали аргументы с IsMatch . Шаблон должен быть вторым аргументом, а не первым:

 if (!System.Text.RegularExpressions.Regex.IsMatch(textbox.Text, "^[0-9]*$")) 

ПРЕДУПРЕЖДЕНИЕ. В JavaScript символ \d эквивалентен [0-9] , но в .NET, \d по умолчанию соответствует любой десятичной цифре Unicode , включая экзотический тариф, такой как 2 (Мьянма 2) и ߉ (N’Ko 9). Если ваше приложение не готово справиться с этими символами, используйте [0-9] (или поставьте флаг RegexOptions.ECMAScript ).