A regular expression is a powerful language to match text content by various patterns.
For an instance, we have the Amazon Advertising script inside our page that we want to delay loading:
amzn_assoc_placement = "adunit0";
amzn_assoc_enable_interest_ads = "true";
amzn_assoc_tracking_id = "baskingridgeh-20";
So, the pattern for detecting this script by its body may be:
@(?:^|\W)amzn_assoc_placement\s*=\s*[\'"][\w\-]+[\'"]@
Another example – there is separated script:
<script src="/dir/abc.js">
So, we can match it by:
@/abc\.js@ or src:@/abc\.js@ if is needed to limit searching only in src (see below).
And we can test and debug our patterns and look at the syntax.
Special extensions#
Scope prefixes for styles and scripts#
In exclusions in styles and scripts we can limit the scope of matching, as body, ID or source URL by adding related prefixes:
- src
Matching with content of
srcattribute. - id
Matching with content of
idattribute. - body
Matching with body content. Body is taked as from inline script (or style) as from by URL.
This prefixes can be combined, e.g. src,body or id,src, etc. E.g. src,body:@abc@ will search matching src attribute and body with string abc.
Also, if no prefixes are defined then it means matching in all places. E.g. id,src,body:@abc@ equals to @abc@.
Conditions#
Also, results of standard rerular expression matching can be compared by appending with = or != and exact value (with logical ‘&’ operator as well). E.g. @Ab\w\wef$@ = Abcdef & @\Fed(\w)b(\w\)$@ != ca. Also, you can check the result for the empty value by prepending expression with !, for example, !@Ab\w\wef$@.