Поскольку вы спросили «как», я постараюсь объяснить шаг за шагом. Поскольку вы не указали, какой тип регулярного выражения вы используете, я приведу примеры в 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}$
соответственно.