Недавно я читал в PCRE
- (Perl-совместимые регулярные выражения) документацию и наткнулся на некоторые интересные трюки с регулярным выражением, Поскольку я продолжал читать и истощать себя, я остановился из-за некоторой путаницы в связи с использованием нескольких шаблонов (*...)
.
Мой вопрос и путаница относятся к (*PRUNE)
и (*FAIL)
Теперь для справки (*SKIP)
действует как (*PRUNE)
, за исключением того, что если шаблон не аннулирован, то приступ bumpalong не относится к следующему символу, а к позиции в теме, где (*SKIP)
.
В документации указано, что (*PRUNE)
приводит к сбою совпадения в текущей стартовой позиции в теме, если остальная часть шаблона не соответствует. И он утверждает (*FAIL)
синонимом отрицательного утверждения (?!)
. Принудительный сбой в заданной позиции в шаблоне.
Таким образом, в основном (*FAIL)
ведет себя как неудачное отрицательное утверждение и является синонимом (?!)
И (*PRUNE)
приводит к сбою совпадения в текущей стартовой позиции в теме, если есть более поздняя ошибка соответствия, которая приводит к обратному слежению, чтобы достичь этого.
Как они отличаются друг от друга, когда дело доходит до точки неудачи?
Можно ли предоставить примеры того, как они реализованы и используются правильно?