Как создать регулярное выражение для приема не более 10 цифр? - PullRequest
8 голосов
/ 23 июня 2009

Как мне создать регулярное выражение для приема не более 10 цифр?

спасибо

Ответы [ 10 ]

24 голосов
/ 23 июня 2009

Поскольку вы спросили «как», я постараюсь объяснить шаг за шагом. Поскольку вы не указали, какой тип регулярного выражения вы используете, я приведу примеры в PCRE и двух вариантах POSIX регулярного выражения .

Для простых подобных случаев вы должны думать о регулярном выражении как об автоматизации, принимая по одному символу за раз и говоря, когда он действителен, один (принимает символ) или нет. И после каждого символа вы можете указать квантификаторы, сколько раз он может появляться, например (на диалекте PCRE) * (ноль или более раз), + (один или несколько раз) или { n , м } (от n до м раз). Тогда процесс строительства становится простым:

PRCE  | B.POSIX | E.POSIX   | Comments
------+---------+-----------+--------------------------------------------------
^     | ^       | ^         | Unless you are going to accept anything with 10
      |         |           | digits in it, you need to match start of data;
\d    | [0-9]   | [:digit:] | You need to match digits;
{1,10}| \{1,10\}| {1,10}    | You have to specify there is from 1 to 10 of them.
      |         |           | If you also wish to accept empty string — use 0;
$     | $       | $         | Then, data should end (unless see above).

Итак, результат равен ^\d{1,10}$, ^[0-9]\{1,10}\$ или ^[:digit:]{1,10}$ соответственно.

6 голосов
/ 23 июня 2009
^\d{1,9}$

Это будет соответствовать чему угодно от 1 цифры до 9.

Поскольку вы не указали тип регулярного выражения, с которым работаете, это должно привести вас туда, где вам нужно. Если нет, сообщите нам, какую технологию регулярных выражений вы используете.

5 голосов
/ 23 июня 2009

/\D\d{0,10}\D/ (при условии, что "меньше чем" включает 0)

/\D\d{1,10}\D/ (если вы хотите от 1 до 10 цифр)

2 голосов
/ 23 июня 2009

Я думаю, что это поможет:

^ \ d {1,10} $

2 голосов
/ 23 июня 2009

В Perl:

^\d{,9}$

perldoc perlretut - хороший учебник по регулярным выражениям в Perl.

1 голос
/ 23 июня 2009

/ \ D \ d {, 9} \ D / in Perl

0 голосов
/ 24 июня 2009

http://www.regexbuddy.com/

но я бы предложил здесь разделить вопросы, просто проверьте, если длина строки <= 10 символов после ввода, вам не нужно регулярное выражение для этого. </p>

0 голосов
/ 24 июня 2009

поиграй с http://gskinner.com/RegExr/

0 голосов
/ 23 июня 2009

Это найдет хотя бы одну и не более 9 цифр подряд:

\d{1,9}

0 голосов
/ 23 июня 2009

для "менее 10" и хотя бы 1, который вы хотите, при условии, что это единственное значение ...

^\d{1,9}$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...