Мы можем разбить ваш шаблон на три части:
точка - это подстановочный знак, он соответствует любому символу (по умолчанию, за исключением новых строк, если только /s
установлен модификатор .
{5,}
указывает повтор на точке.Это говорит о том, что точка должна совпадать как минимум 5 раз.Если бы после запятой было число, точка должна была бы совпадать между 5 и этим числом раз, но так как числа нет, оно может совпадать бесконечное число раз.
В вашем первом шаблоне, +
является собственническим квантификатором (см. ниже о том, как +
может означать разные вещи в разных ситуациях).Он сообщает механизму регулярных выражений, что, как только он удовлетворяет предыдущему условию (т. Е. .{5,}
), он не должен пытаться вернуться назад.
Ваш второй шаблон проще.Точка все еще означает то же самое, что и выше (работает как подстановочный знак).Однако здесь +
имеет другое значение и является оператором повторения, означающим, что точка должна совпадать 1 или более раз (что также может быть выражено как .{1,}
, как мы видели выше).
Как видите, +
имеет различное значение в зависимости от контекста.Когда используется сам по себе, это оператор повторения.Однако когда он следует за другим оператором повторения (*
, ?
, +
или {...}
), он становится собственническим квантификатором.