Auto Refresh Plus Version 9.0.6
Pricing

Get Ahead with Auto Refresh Plus Download Now

Get Auto Refresh Plus, the ultimate browser extension for automatic page refreshing. Easily set custom intervals, monitor web pages, and stay updated with the latest content. Compatible with Chrome and Firefox, Auto Refresh Plus enhances your browsing experience with seamless and efficient page refreshing. Download now and start enjoying uninterrupted updates.
Add to Chrome
Privacy PolicyCookies PolicyTermsRefund Policy

Google Sign-In is used only for secure authentication and syncing your settings across devices.

ยฉAutoRefreshPlusใ€‚All Rights Reserved 2014 - 2026ใ€‚

A product of BetterLogic FZE

Supported Expressions

Complete guide to monitoring page content and detecting changes with Auto Refresh Plus

1. Text Matching

Monitor for specific text content appearing or changing on the page. Use plain text or comma-separated values.

Plain Text

In Stock

Monitor for exact text match

Comma-Separated Text

Available, In Stock, Ships Today

Monitor for any of these text values

Case Sensitive

SALE

Exact match including case

Important Note

Text matching only supports plain text or comma-separated values. Advanced patterns like "text-contains" or "text-not-contains" are not supported. Use Regular Expressions for pattern matching instead.

Common Use Cases

๐Ÿ›๏ธ Product Availability

In Stock, Available Now

Monitor when products become available

๐Ÿ“ฆ Shipping Status

Shipped, Out for Delivery, Delivered

Track order status changes

๐ŸŽซ Event Status

Tickets Available

Get notified when tickets go on sale

2. Custom Expressions

Use boolean expressions to create advanced monitoring with OR and AND logic. All custom expressions must start with ## and use parentheses for grouping.

Syntax Rules

  • Start with ## prefix
  • Use | for OR operator
  • Space between groups for AND operator
  • Enclose each group in parentheses ()
  • Total of 4 parentheses required: ##(term1 | term2) (term3 | term4)

Basic Examples

Product Availability

##(in stock | available) (add to cart | buy now)

Matches pages showing ("in stock" OR "available") AND ("add to cart" OR "buy now")

Sale Detection

##(sale | discount) (50% | 30%)

Matches pages with ("sale" OR "discount") AND ("50%" OR "30%")

Shipping Options

##(free shipping | express) (today | tomorrow)

Matches ("free shipping" OR "express") AND ("today" OR "tomorrow")

How It Works

OR Logic (|)

Within parentheses, the pipe | acts as OR:

(in stock | available)

Matches either "in stock" or "available"

AND Logic (space)

Space between parentheses groups acts as AND:

(group1) (group2)

Both groups must match

Complete Expression

##(term1 | term2) (term3 | term4)

Means: (term1 OR term2) AND (term3 OR term4)

Advanced Examples

E-commerce Monitoring

##(in stock | available | ships today) (add to cart | buy now | order now)

Monitor for product availability with purchase options

Price Drop Alert

##(sale | discount | clearance) ($9.99 | $19.99 | $29.99)

Monitor for sale announcements with specific price points

Event Tickets

##(tickets available | seats available) (section a | section b | vip)

Monitor for ticket availability in specific sections

Job Postings

##(now hiring | apply now) (remote | work from home)

Monitor for remote job opportunities

Common Use Cases

๐ŸŽฎ Gaming Consoles

##(ps5 | playstation 5 | xbox) (in stock | available | buy)

Monitor console availability

๐Ÿ  Real Estate

##(for sale | new listing) (3 bedroom | 4 bedroom)

Monitor property listings

โœˆ๏ธ Flight Deals

##(sale | deal | discount) (new york | los angeles | miami)

Track flight deals to specific cities

3. Regular Expressions

Use regex patterns for flexible content matching and validation. All regex expressions must start with the $/ prefix and end with / suffix.

Common Patterns

Price Pattern

$/\$\d+\.\d{2}/

Match price format like $99.99

Email Pattern

$/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/

Match email addresses

Phone Number

$/\+?\d{1,3}\s?\d{2,3}\s?\d{3,4}\s?\d{4}/

Match various phone formats

Date Pattern

$/\d{2}/\d{2}/\d{4}/

Match date format MM/DD/YYYY

Stock Status

$/(In Stock|Available|Ships Today)/

Match multiple availability statuses

Character Classes

Basic Classes

.Any character, except newline
\wWord character (a-z, A-Z, 0-9, _)
\dDigit (0-9)
\sWhitespace (space, tab, newline)
\WNot a word character
\DNot a digit
\SNot whitespace

Character Sets

[abc]Any of a, b, or c
[a-e]Characters between a and e
[1-9]Digit between 1 and 9
[^abc]Any character except a, b, or c

Anchors

^Start of string (or line in multiline mode)
$End of string (or line in multiline mode)
\bWord boundary
\BNon-word boundary
\AStart of string (absolute)
\Z End of string (before final newline)
\zAbsolute end of string
Examples:
^abcString starts with "abc"
abc$String ends with "abc"
\bword\bMatch whole word "word"

Quantifiers

a*Match 0 or more times
a+Match 1 or more times
a?Match 0 or 1 time (optional)
a{5}Match exactly 5 times
a,3}Match up to 3 times
a{3,}Match 3 or more times
a{1,3}Match between 1 and 3 times
Examples:
\d{3}Exactly 3 digits
\d{2,4}Between 2 and 4 digits
\w+One or more word characters

Groups and Alternation

(abc)Capture group - match and capture "abc"
(a|b)Match "a" or "b"
(?:abc)Non-capturing group - match but don't capture
\1Backreference to 1st capturing group
Examples:
(cat|dog)Match "cat" or "dog"
(\d{3})-(\d{4})Capture area code and number separately
(\w+)\s\1Match repeated words (e.g., "the the")

Lookahead & Lookbehind

a(?=b)Positive lookahead - match "a" only if followed by "b"
a(?!b)Negative lookahead - match "a" only if NOT followed by "b"
(?<=a)bPositive lookbehind - match "b" only if preceded by "a"
(?<!a)bNegative lookbehind - match "b" only if NOT preceded by "a"
Examples:
\d+(?= dollars) Match numbers before " dollars"
(?<=\$)\d+Match numbers after "$"
\w+(?!@)Match words not followed by "@"

Escaped Characters

\. \* \\Escape special characters (literal dot, asterisk, backslash)
\tTab character
\nNewline character
\rCarriage return
. * + ? ^ { } [ ] ( ) | \Special characters that need escaping

Online Tools for Testing Regular Expressions

Test your regex patterns using online tools before using them in monitors:

  • regex101.com - Interactive regex tester with explanations
  • regexr.com - Visual regex builder and tester
  • Browser DevTools console - Test with JavaScript regex

Common Use Cases

๐Ÿ’ฐ Price Monitoring

$/\$[1-4]\d\.\d{2}/

Monitor for prices between $10-$49.99

๐Ÿ“ง Email Detection

$/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/

Detect when email addresses appear on page

๐Ÿ“… Date Changes

$/\d{2}/\d{2}/\d{4}/

Monitor for date format changes (MM/DD/YYYY)

๐Ÿ“ž Phone Numbers

$/\+?\d{1,3}\s?\d{2,3}\s?\d{3,4}\s?\d{4}/

Detect phone number appearances

4. XPath Expressions

Use XPath for complex element selection and navigation through the DOM tree. All XPath expressions must start with the @@ prefix.

Basic Selectors

Element Selection

@@//h1Any "h1" element
@@//div//pAny "p" inside "div" (descendant)
@@//ul/liDirect "li" children of "ul"
@@//ul/li/aDirect path: "ul" โ†’ "li" โ†’ "a"
@@//div/*All children of "div"

Root Selection

@@/Root "element"
@@/bodyRoot โ†’ "body"
@@/html/body/divAbsolute path from root "element"

Attribute Selectors

ID and Class

@@//*[@id="price"]Element with "id="price"
@@//*[@class="product"]Element with "class="product"
@@//div[contains(concat(' ',normalize-space(@class),' ')," active ")]Class contains "active" (proper class matching)

Attribute Matching

@@//input[@type="submit"]Input with "type="submit"
@@//a[@id="abc"][@for="xyz"]Multiple attributes (chained)
@@//a[@rel]Has rel attribute (any value)
@@//a[starts-with(@href, "/")]href starts with "/"
@@//a[ends-with(@href, ".pdf")]href ends with ".pdf"
@@//a[contains(@href, "://")]href contains "://"

Order and Position

Index Selection

@@//ul/li[1]First li (index starts at 1)
@@//ul/li[2]Second li
@@//ul/li[last()]Last li
@@//ul/li[last()-1]Second to last li
@@//ul/li[position()<3]First two li elements

Child Position

@@//*[1][name()="a"]First child that is an "a"
@@//*[last()][name()="a"]Last child that is an "a"
@@//li[1][@id="first"]First li with "id="first"

Sibling Navigation

@@//h1/following-sibling::ulAll ul siblings after h1
@@//h1/following-sibling::ul[1]Next ul sibling after h1
@@//h1/following-sibling::*[@id="next"]Next sibling with "id="next"
@@//h1/preceding-sibling::divAll div siblings before h1

Text and Content

Text Matching

@@//button[text()="Submit"]Exact text match
@@//button[contains(text(),"Go")]Text contains "Go"
@@//span[starts-with(text(),"Price:")]Text starts with "Price:"
@@//a/text()Get text content of "a"

Attribute Values

@@//a/@hrefGet "href" attribute value
@@//img/@srcGet "src" attribute value
@@//*/@data-priceGet "data-price" attribute

Predicates and Conditions

Comparison Operators

@@//a[@id = "link"]Equal to
@@//a[@id != "link"]Not equal to
@@//product[@price >&quot; 25]Greater than
@@//product[@price &lt; 100]Less than

Logical Operators

@@//div[@id="main" and @class="active"]AND condition
@@//div[@id="main" or @id="alt"]OR condition
@@//h1[not(@id)]NOT condition (no id attribute)
@@//div[(x and y) or not(z)]Complex logic with parentheses

Node Conditions

@@//ul[li]ul that has li children
@@//ul[*]ul that has any children
@@//ul[count(li) > 2]ul with more than 2 li children
@@//ul[count(li[@class="hide"]) > 0]ul with hidden li children

Axes (Navigation)

Parent and Ancestor

@@//ul/li/..Parent of li (the ul)
@@//li/ancestor::sectionAncestor section of li
@@//li/ancestor-or-self::sectionSection ancestor or self

Descendant

@@//div/descendant::spanAll span descendants of div
@@//div/descendant-or-self::*Div and all its descendants

Following and Preceding

@@//h1/following::divAll divs after h1 in document
@@//h1/preceding::divAll divs before h1 in document

Union (Multiple Queries)

@@//a | @@//divAll "a" and "div" elements
@@//button | @@//input[@type="submit"]All buttons and submit inputs
@@//h1 | @@//h2 | @@//h3All heading elements

Testing XPath in Browser Console

Test XPath expressions directly in Firefox or Chrome DevTools console:

@@$x("//div[@class="price"]")

This will return an array of matching elements you can inspect.

Common Use Cases

๐Ÿ  Property Listings

@@//div[contains(text(), "22nd floor") or contains(text(), "lower than 22")]

Monitor for specific floor requirements in listings

โš ๏ธ Stock Status

@@//span[@class="stock-status" and text()="In Stock"]

Monitor specific stock status with attribute and text matching

๐Ÿ”ข Table Data

@@//table[@id="prices"]//tr[2]/td[3]

Monitor specific cells in data tables

๐Ÿ”— Dynamic Links

@@//a[contains(@href, "download") and contains(text(), "PDF")]

Monitor for specific download links

5. CSS Selectors

Monitor specific elements using standard CSS selector syntax.

ID Selector

#price

Monitor element with "id="price"

Class Selector

.product-title

Monitor elements with "class="product-title"

Attribute Selector

[data-status="available"]

Monitor elements with specific attribute value

Descendant Selector

.container .price-value

Monitor nested elements

Multiple Selectors

.price, .stock, .availability

Monitor multiple elements at once

Common Use Cases

๐Ÿ›’ Add to Cart Button

.add-to-cart-button

Monitor when add to cart button appears

๐Ÿ’ต Price Display

#product-price

Monitor price element by ID

๐Ÿ“ข Notification Badge

.notification-badge

Monitor for new notifications

โœ… Status Indicator

[data-status="active"]

Monitor elements with specific status attributes

๐Ÿ’ก Best Practices

  • Start simple: Begin with text matching or CSS selectors before moving to XPath or regex
  • Test your expressions: Use browser Dev Tools to verify selectors work correctly
  • Be specific: Use unique identifiers (IDs) when possible to avoid false matches
  • **Monitor stable elements: **Avoid monitoring elements that change frequently for unrelated reasons
  • Use multiple monitors: Create separate monitors for different types of changes
  • Consider page structure: Websites may change their HTML structure; use flexible selectors
  • Combine with refresh intervals: Set appropriate refresh rates for your monitoring needs
Need help? Visit our documentation or contact support for assistance with expression syntax.

Generate with AI

Create expressions instantly

On This Page

  • Text Matching
  • Custom Expressions
  • Regular Expressions
  • XPath Expressions
  • CSS Selectors

resources

  • Best Practices