Ограничить длину символов в регулярном выражении?

Есть ли способ ограничить регулярное выражение до 100 символов с регулярным выражением?

\[size=(.*?)\](.*?)\[\/size]

Так что Look at me! не работает.

Я хочу ограничить числа, разрешить только числа от 1 до 100.

Ответ 1

Есть ли способ ограничить регулярное выражение до 100 символов С помощью регулярного выражения?

В вашем примере показано, что вы хотите захватить число из регулярного выражения, а затем использовать это число, чтобы поместить максимальную длину в другую часть, которая сопоставляется позже в регулярном выражении. Обычно это невозможно за один проход. Лучше всего иметь два отдельных регулярных выражения:

  • чтобы соответствовать максимальной длине, которую вы хотели бы использовать
  • который использует ранее извлеченное значение, чтобы убедиться, что его собственное совпадение не превышает указанной длины

Если вы просто хотите ограничить количество символов, сопоставляемых выражением, большинство регулярных выражений поддерживают границы с помощью фигурных скобок. Например,

\d{3}-\d{3}-\d{4}

будет соответствовать (US) телефонным номерам: ровно три цифры, затем дефис, затем ровно три цифры, затем еще один дефис, а затем ровно четыре цифры.

Аналогично, вы можете установить верхний или нижний пределы:

\d{5,10}

означает "не менее 5, но не более 10 цифр".


Обновление: ОП разъяснил, что он пытается ограничить значение, а не длину. Мой новый ответ не использует регулярные выражения для этого. Извлеките значение, затем сравните его с максимальным выбранным из параметра размера. Это гораздо меньше подвержено ошибкам.

Ответ 2

Если вы хотите ограничить допустимый ввод целыми значениями от 1 до 100, это сделает это:

^([1-9]|[1-9][0-9]|100)$

Объяснение:

  • ^= начало ввода
  • ()= несколько параметров для соответствия
  • Первый аргумент [1-9] - соответствует любым элементам между 1 и 9
  • |= разделитель аргументов OR
  • Второй аргумент [1-9] [0-9] - соответствует значениям между 10 и 99
  • Последний аргумент 100 - Самоочевидный - соответствует записи из 100

Этот НЕ ПРИНИМАЕТ:  1. Нуль - 0  2. Любому целому числу, которому предшествует нуль - 01, 021, 001  3. Любое целое число больше 100

Надеюсь, это поможет!

Гез

Ответ 3

Если вам нужны номера от 1 до 100:

100|[1-9]\d?

Ответ 4

(^(\d{2})|^(\d{4})|^(\d{5}))$

Это выражение принимает число длиной 2,4 и 5. Допустимые значения: 12 1234 12345