Регулярное выражение для ограничения количества символов до 10

Я пытаюсь написать регулярное выражение которое будет содержать только строчные буквы и до 10 символов. Что я до сих пор выглядел так:

pattern: /^[a-z]{0,10}+$/ 

Это не работает или не компилируется. У меня был рабочий, который бы просто разрешил строчные буквы, которые были такими:

pattern: /^[a-z]+$/ 

Но мне нужно ограничить количество символов до 10.

Ответ 1

Вы можете использовать фигурные скобки для управления количеством вхождений. Например, это означает от 0 до 10:

/^[a-z]{0,10}$/

Возможные варианты:

  • {3} Точно 3 вхождения;
  • {6,} Не менее 6 вхождений;
  • {2,5} от 2 до 5 вхождений.

Смотрите ссылку регулярное выражение.

Ваше выражение имело + после закрывающей фигурной скобки, поэтому ошибка.

Ответ 2

/^[a-z]{0,10}$/ должен работать. /^[a-z]{1,10}$/, если вы хотите совместить хотя бы один символ, например /^[a-z]+$/.

Ответ 3

Возможно, было бы полезно добавить жадное соответствие в конец строки, чтобы вы могли принимать строки > 10, а регулярное выражение будет возвращаться только к первым 10 символам. /^[a-z0-9]{0,10}$?/

Ответ 4

Это очень зависит от используемой вами программы. Различные программы (Emacs, vi, sed и Perl) используйте несколько разные регулярные выражения. В этом случае я бы сказал, что в первом шаблоне последний "+" должен быть удален.

Ответ 5

grep '^[0-9]\{1,16\}' | wc -l

Дает счетчик с точным совпадением с лимитом

Ответ 6

^(?!0\d*$).*\d{3}

Минимум 3 номера