Есть ли способ ограничить регулярное выражение до 100 символов с регулярным выражением?
\[size=(.*?)\](.*?)\[\/size]
Так что Look at me!
не работает.
Я хочу ограничить числа, разрешить только числа от 1 до 100.
Есть ли способ ограничить регулярное выражение до 100 символов с регулярным выражением?
\[size=(.*?)\](.*?)\[\/size]
Так что Look at me!
не работает.
Я хочу ограничить числа, разрешить только числа от 1 до 100.
Есть ли способ ограничить регулярное выражение до 100 символов С помощью регулярного выражения?
В вашем примере показано, что вы хотите захватить число из регулярного выражения, а затем использовать это число, чтобы поместить максимальную длину в другую часть, которая сопоставляется позже в регулярном выражении. Обычно это невозможно за один проход. Лучше всего иметь два отдельных регулярных выражения:
Если вы просто хотите ограничить количество символов, сопоставляемых выражением, большинство регулярных выражений поддерживают границы с помощью фигурных скобок. Например,
\d{3}-\d{3}-\d{4}
будет соответствовать (US) телефонным номерам: ровно три цифры, затем дефис, затем ровно три цифры, затем еще один дефис, а затем ровно четыре цифры.
Аналогично, вы можете установить верхний или нижний пределы:
\d{5,10}
означает "не менее 5, но не более 10 цифр".
Обновление: ОП разъяснил, что он пытается ограничить значение, а не длину. Мой новый ответ не использует регулярные выражения для этого. Извлеките значение, затем сравните его с максимальным выбранным из параметра размера. Это гораздо меньше подвержено ошибкам.
Если вы хотите ограничить допустимый ввод целыми значениями от 1 до 100, это сделает это:
^([1-9]|[1-9][0-9]|100)$
Объяснение:
Этот НЕ ПРИНИМАЕТ: 1. Нуль - 0 2. Любому целому числу, которому предшествует нуль - 01, 021, 001 3. Любое целое число больше 100
Надеюсь, это поможет!
Гез
Если вам нужны номера от 1 до 100:
100|[1-9]\d?
(^(\d{2})|^(\d{4})|^(\d{5}))$
Это выражение принимает число длиной 2,4 и 5. Допустимые значения: 12 1234 12345