Подтвердить что ты не робот

6-значное регулярное выражение

Мне нужно регулярное выражение, для которого требуется хотя бы одно число и максимум SIX.

Я разработал это, но ни один из них не работает.

^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$

^[0-999999]$

Любое другое предложение?

4b9b3361

Ответ 1

Вы можете использовать квантификатор диапазона {min,max}, чтобы указать минимум 1 цифру и максимум 6 цифр как:

^[0-9]{1,6}$

Пояснение:

^     : Start anchor
[0-9] : Character class to match one of the 10 digits
{1,6} : Range quantifier. Minimum 1 repetition and maximum 6.
$     : End anchor

Почему ваше регулярное выражение не работает?

Вы были почти близки к регулярному выражению:

^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$

Поскольку вы избежали ?, предшествуя ему с помощью \, ? больше не выступал в качестве метасимвола регулярного выражения (для повторений 0 или 1), но обрабатывался буквально.

Чтобы исправить это, просто удалите \, и вы там.

Посмотрите на rubular.

Регулярное выражение на основе квантора является более коротким, более читаемым и может быть легко распространено на любое количество цифр.

Второе регулярное выражение:

^[0-999999]$

эквивалентно:

^[0-9]$

который соответствует строкам с точностью до одной цифры. Они эквивалентны, потому что класс символов [aaaab] такой же, как [ab].

Ответ 2

  ^\d{1,6}$

....................

Ответ 3

Вы можете попробовать

^[0-9]{1,6}$

он должен работать.

Ответ 4

^[0-9]{1,6}$ должен это сделать. Я не знаю, что VB.NET достаточно хорош, чтобы знать, если он там же.

Для примера рассмотрим Wikipedia.