#regex
#регулярное выражение
Вопрос:
Например. соответствует 353812345678, пока у меня есть ^3538{1} [d]{8}, который работает, но не ограничивает длину. Как мне убедиться, что длина не превышает 12 цифр?
Комментарии:
1. Имейте в виду, что это будет соответствовать, если, например, строка содержит только
353812345678
, но она не будет соответствовать353812345678 abc
(что действительно, насколько я могу понять).
Ответ №1:
Если вы хотите, чтобы число было единственным в строке: ^3538d{8}$
Если вам просто нужно число в строке: b3538d{8}b
^
является привязкой к началу строки, в то время как $
является привязкой к концу строки, поэтому первая привязка ограничивает число единственным значением в строке.
В другом, b
означает границу слова, так что это просто означает, что никакие другие буквы или цифры не могут располагаться непосредственно перед или после числа.
Также, обратите внимание, что в вашем исходном регулярном выражении {1}
является избыточным и [d]
означает то же самое, что и d
.
Ответ №2:
^3538{1}[d]{8}[^d]
гарантирует, что у вас будет 3538, за которым следуют 8 цифр и что-то, что НЕ является цифрой — таким образом, ограничивая длину.
Ответ №3:
Добавьте знак доллара ($) в конце регулярного выражения: ^3538{1}[d]{8}$