(?!
контрукцииСинтаксис: X(?!Y)
Он означает: найди такой X, за которым НЕ следует Y.
/Ludovic(?!XVI)/
LudovicXV, LudovicXVI, LudovicXVIII, LudovicLXVII, LudovicXXL
Кроме просмотра вперед, существует просмотр назад или ретроспективный поиск. Он работает похожим образом, но ищет совпадения символов, расположенных после сгруппированной в скобках части регулярного выражения, которая не будет включена в сопоставление.
(?!
указывается справа от проверяемого выражения (подстроки).(?<!
конструкция:(?<!Y)X
, ищет совпадение с X при условии, что перед ним НЕТ Y ^(([a-z0-9_-]+\.)*(?!(play|gemini)\.)[a-z0-9_-]+\.)?google\.com$
Александр, подскажите пожалуйста, а как работает данная регулярка, в том плане, что если мы заглядываем справа (?!
, то наша ретроспективная проверка получается относится к блоку ([a-z0-9_-]+\.)*
[a-z0-9_-]+\.
который идёт перед google\.com.Тем более не понятно какую цель вы преследуете?