@romicohen
Системный Архитектор

Как понять это регулярное выражение?

Встретил тут такое:

(?<=(?:.pdf))

Что оно еще делает, кроме того, что вычленяет из текста строку 'pdf'?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
(?<=) - справа от этого шаблона, то есть условие есть но в матч оно не попадет. в матч попадет то что окажется после этого утверждения.
.pdf - сам шаблон
bb- то что нашли
и того
(?: ) - обычная группа но ?: говорит о том то ее не нужно выделять в группу то есть в $1 ее превращять не нужно, то на саму регулярку этот вопрос с двоеточием не влияет никак это просто група, но посколкьу она не данные не будут нужны. и дабы ее засорять вывод ее нужно прсто забыть.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@d-sem
Positive Lookbehind
более предметно https://learn.javascript.ru/regexp-lookahead-lookbehind

Небольшой лайфхак по регуляркам. Иногда помогает использовать инструменты для их составления. Например, https://regex101.com/r/GYjBIY/1

В верхнем правом углу будет объяснение как работает. А в поле ниже можно на своих примерах посмотреть как отрабатывает регулярка в разных ситуациях.
Ответ написан
@ab1
Возможно не вся регулярка показана или обрезана.
Например она-же дополненная символами "bb":
(?<=(?:.pdf))bb

посмотри что нашлось по ней
https://regex101.com/r/tAqWiW/1

+ Ссылку на Positive Lookbehind из предыдущего почитай(на русском)
мне тоже стало понятнее что это)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы