Support
Welcome to WalkMe support

Please login in order to continue:

Work flows better with WalkMe
Work flows better with WalkMe.

What is Regex?

Last Updated May 23, 2024

Brief Overview

Regular expressions, known as regex, allow you to manipulate dynamic text that appears in WalkMe content or that is part of automated processes. Using regex syntax is ideal for situations where dynamic text values you are using contain both the values you want and other characters that aren't relevant.

Learn more about regex. 

Use Cases

Regex use cases include the following:

  • When dynamic text includes a user's first and last name, use regex to select and display only their first name in a ShoutOut or balloon to make it more personal (visual display)
  • Auto-populate your users' email address (when it's part of a larger object with additional data) into a text field upon page load (automation)
  • Select only part of a URL when using dynamic text to automatically take the user to a different page

Example use case

A customer wants to have a SmartTip display when an on screen element showing a date, is before or equal to January 31, 2019.

How to tackle the problem:

  1. Outline possible values you want to match and values you do not want to match
  2. Break the problem down into multiple groups of rules which, when combined, encompass all values you want to match
    1. In this example we have four different patterns we want to match:
      1. Any dates during January 2019
      2. Any date between January 1, 2010 and December 31, 2018
      3. Any date between January 1, 2000 and December 31, 2009
      4. Any date between January 1, 0000 and December 31, 1999
  3. Form the rules to handle each of the above cases and test them:
    1. ^Jan[\s]+[0123]?[\d]+,[\s]+2019$
    2. ^[\w]+[\s]+[0123]?[\d]+,[\s]+201[012345678]$
    3. ^[\w]+[\s]+[0123]?[\d]+,[\s]+200[0123456789]$
    4. ^[\w]+[\s]+[0123]?[\d]+,[\s]+[01][\d]{3}$
  4. After testing each group, combine into one string using the pipe (remove excess ^ and $s)
    • ^Jan[\s]+[0123]?[\d]+,[\s]+2019|[\w]+[\s]+[0123]?[\d]+,[\s]+201[012345678]|[\w]+[\s]+[0123]?[\d]+,[\s]+200[0123456789]|[\w]+[\s]+[0123]?[\d]+,[\s]+[01][\d]{3}$
  5. Implement the above RegEx in the SmartTip's display segment rule using:
    • OSE/jQuery > Text is per Regular Expression > ^Jan[\s]+[0123]?[\d]+,[\s]+2019|[\w]+[\s]+[0123]?[\d]+,[\s]+201[012345678]|[\w]+[\s]+[0123]?[\d]+,[\s]+200[0123456789]|[\w]+[\s]+[0123]?[\d]+,[\s]+[01][\d]{3}$
  6. Result: SmartTip will display when the element's text value is January 1, 0000 all the way to Jan 31, 2019

How It Works

Begin with an opening regex tag containing the regular expression itself, followed by the statement you wish to apply the regular expression to, and end with a closing regex tag:

[regex="{the regex itself}"]{text to perform the regex on}[/regex]

Note

  • {text to perform the regex on} can be a mix of multiple dynamic text values, such as variables, cookies, WalkMe Data, and jQuery, as well as static values
  • Most, if not all uses of text in regex will be dynamic, with minimal use of static text values

Supported use of regex at WalkMe

Rule engine rule types:

  • Selected element
  • URL
  • User attributes
  • jQuery
  • On screen element
  • Variable (user data)

BBCode for WalkMe content:

  • Visual display
    • Smart Walk-Thru step
    • ShoutOut
    • Guidance SmartTip 
    • Survey
  • Automation
    • Smart Walk-Thru auto-step (fill text & select list value)
    • Smart Walk-Thru redirect step

Regex Structure

Starting and ending demarcators

When outside of brackets, ^ will denote the start of a regex and is used with the $ to denote the end of the regex.

Examples

  • Regex in an extension package: ^https:\/\/ecolab\.my\.salesforce\.com.*|^https:\/\/ecolab.*na.*\.visual\.force\.com.*
  • Regex in the rule engine: User Data → Variable → department → Is Per Regular Expression → ^sales$

Single character match

Most basic form of regex will do a direct character match.

Examples

  • ^walkme$
    • Will match “walkme”

Lists and ranges

[] can be used to specify a list of values and when combined with can dictate a range of values a corresponding character in the target string can take.

Examples

  • ^[dcr][ao][gt]$
    • Will match “dog” “cat” “rat” “rag”
    • First character must be d, c, or r; Second character must be a or o, and the third character must be g or t
  • ^[a-z][0-9]$
    • First character must be a through z (lowercase) and second character must be 0 through 9

Repetitions

{3} and {#,#} can be used to avoid having to type the same patterns repeatedly in succession within a regex.

Examples

  • ^[a-z]{3}$
    • Will match three lowercase letters in sequence such as “adf” or “kzd”
  • ^[a-z]{1,3}$
    • Will match no less than one and no more than three of the preceding characters such as “a” “am” and “abc” but not “duct”

Wildcards

These are useful if text in the target string is dynamic or if the contents do not matter.  . will match any single character, * will match zero or more of the preceding pattern, and + will match one or more of the preceding pattern.

Examples

  • ^.*$
    • Will match zero or more of any characters and is useful to add to the beginning and ending of a regex (particularly within extensions) because we are only interested in matching sub domains
  • ^a+b*c+$
    • Will match because the + specifies that at least one of the preceding character must be present

Escape character

The backslash \ denotes that the characters following it have special meaning.

Examples

  • \.
    • Represents a period and not a wildcard
  • \/, \$
    • Will match a / and $
  • \d and \D
    • Matches digit\non-digit character
  • \s and \S
    • Matches whitespace\non-whitespace character
  • \w and \W
    • Matches alphanumeric\non-alphanumeric character

Exclusion character

When contained within [] ^ can denote that the character should not be present in the target string.

Examples

  • ^[^abc]$
    • Will match any single character that is not a, b, or c
  • ^[^n-p]$
    • Will match any single character that is not n, o, or p
  • ^\w[^og]{2}$
    • Will match bee and sea but not log, bog, fog, etc.

Negative lookahead

(?!) will specify that the following String should not be present in the match and is useful to, for example, prevent a WalkMe extension from injecting into the wrong iFrame.

Examples

The pipe

| is the logical “OR” operator in regex and specifies a target string can match multiple patterns.

Examples

  • ^.*ctmstech\.roche\.com/eclinical.*|.*ctms-performance\.roche\.com.*|.*siebelctmsqa\.kau\.roche\.com.*$

Using ChatGPT for Regex in WalkMe

Was this article helpful?

Thanks for your feedback!

Be part of something bigger.

Engage with peers, ask questions, share ideas

Ask the Community
×