Регулярные выражения – это мощный язык для сопоставления текстового содержимого по различным шаблонам.
Например, у нас есть скрипт 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$@
.