Регулярные выражения – это мощный язык для сопоставления текстового содержимого по различным шаблонам.
Например, у нас есть скрипт Amazon Advertising на нашей странице, который мы хотим загружать отложенно:
amzn_assoc_placement = "adunit0";
amzn_assoc_enable_interest_ads = "true";
amzn_assoc_tracking_id = "baskingridgeh-20";
Итого, шаблон для обнаружения этого скрипта по его телу может быть таким:
@(?:^|\W)amzn_assoc_placement\s*=\s*[\'"][\w\-]+[\'"]@
Другой пример — есть отдельный скрипт:
<script src="/dir/abc.js">
Итак, мы можем сопоставить его по:
@/abc\.js@ или src:@/abc\.js@, если нужно ограничить поиск только в src (смотрите ниже).
И мы можем протестировать и отладить наши шаблоны и посмотреть синтаксис.
Специальные расширения#
Префиксы областей для стилей и скриптов#
В исключениях у стилей и скриптов мы можем ограничить область сопоставления, таких как тело, идентификатор или URL-адрес источника, добавив соответствующие префиксы:
- src
Соответствие содержимому атрибута
src. - id
Соответствие содержимому атрибута
id. - body
Соответствие с содержимым тела. Тело берется как из встроенного скрипта (или стиля), так и из URL.
Эти префиксы можно комбинировать, например, src,body или id,src и т. д. Например, src,body:@abc@ будет искать соответствие в src атрибуте и теле с abc.
Кроме того, если префиксы не определены, это означает совпадение во всех местах. Например, id,src,body:@abc@ равно @abc@.
Условия#
Кроме того, результаты сопоставления стандартных регулярных выражений можно сравнивать, добавляя к ним = или != и точное значение (в том числе с помощью логического оператора ‘&’). Например , @Ab\w\wef$@ = Abcdef & @\Fed(\w)b(\w\)$@ != ca. Кроме того, вы можете проверить результат на пустое значение, добавив перед выражением !, например, !@Ab\w\wef$@.