Регулярне вираження для обмеження кількості символів до 10


189

Я намагаюся написати регулярний вираз, який дозволить використовувати лише малі літери та до 10 символів. Що у мене поки що виглядає так:

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

Це не працює і не компілюється. У мене був робочий, який би дозволяв лише малі літери:

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

Але мені потрібно обмежити кількість символів до 10.


4
{} І + роблять те ж саме (рахуючи), таким чином вони є зайвими, отже, помилка.
PhiLho

1
Вам слід скинути "+" з / ^ [az] {0,10} + $ /. Це повинно бути / ^ [az] {0,10} $ /
SO Користувач

1
Зауважте, що ^[a-z]{0,10}+$компіляція шаблонів на деяких мовах, а деякі помітні - Java, Perl (5.10+), PHP, Ruby (1.9+). Дивіться цю сторінку для більш детальної інформації.
Джеррі

Дивіться також універсальне рішення через lookahead: Обмеження довжини символів у регулярному вираженні
Вадим

Відповіді:


356

Ви можете використовувати фігурні дужки, щоб контролювати кількість подій. Наприклад, це означає від 0 до 10:

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

Варіанти:

  • {3} Рівно 3 випадки;
  • {6,} Принаймні 6 випадків;
  • {2,5} 2 - 5 випадків.

Див. Посилання на регулярний вираз .

Ваш вираз мав + після завершальної фігурної дужки, отже, помилка.


У інструментах хромованого розробника з вугіллям я повинен був відмовитись від початку, ^щоб відповідати властивостям ТОЛЬКІ запити з таким іменем, як 1234і 5678, і я повинен був включити знак $
Devin G Rhode

11

/^[a-z]{0,10}$/повинен працювати. /^[a-z]{1,10}$/якщо ви хочете відповідати хоча б одному символу, як /^[a-z]+$/це робиться.


9

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


8

Це дуже залежить від програми, яку ви використовуєте. Різні програми ( Emacs , vi , sed та Perl ) використовують дещо різні регулярні вирази. У цьому випадку я б сказав, що в першому шаблоні слід видалити останній "+".


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

Дає рахунки з точним підрахунком відповідності з обмеженням

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.