Regular Expression Functions

Overview

This Plug-in exposes Java Regular Expression string manipulation capabilities as Appian Functions. Very useful for validation rules and data manipulation on interactive SAIL forms.  

Key Features & Functionality

Datatypes provided:

  • RegexMatch - has a string field representing the string found, a starting index for the string in the haystack and an ending index for the string in the haystack

Regex Flags supported:

  • i - case insensitive
  • g - find all matches
  • m - multiline search
  • s - treats the entire string as a single line
  • u - unicode aware search
  • x - ignores comments starting with '#' and white spaces
  • d - enables unix line mode

Functions provided:

  • regexSearch - Searches for the selected pattern with the specified regex options and returns a list of RegexMatch Datatypes, accepts all regex flags.
  • regexArraySearchIndexOfFirstMatch - Searches an array for a match and returns the first index of match found
  • regexMatch - Indicates whether the regular expression finds a match in the input string, accepts all regex flags.
  • regexInsertMatchMarkers - Finds the match or matches and surrounds them with starting and ending markers, accepts all regex flags.
  • regexFirstMatch - Returns the first match of the regular expression within the input string, accepts all regex flags except 'g'.
  • regexAllMatches - Returns all matches of the regular expression within the input string, accepts all regex flags.
  • regexReplaceAll - Replaces all matches of the regular expression within the input string
Anonymous
Parents
  • Also, matching does not appear to be case-sensitive even when the regular expression pattern asks for case sensitivity. For example, both of the following expressions return true when they should return false.

    regexmatch(
    "^[a-z]{3}$",
    "ABC"
    )

    regexmatch(
    "^[A-Z]{3}$",
    "abc"
    )

  • I know this is an older post, but it's worth noting that the original / legacy functions a have case insensitivity hardcoded in the plugin. There is a way round this in suffixing the pattern with the java case-sensitive flag but it's not ideal.

Comment
  • I know this is an older post, but it's worth noting that the original / legacy functions a have case insensitivity hardcoded in the plugin. There is a way round this in suffixing the pattern with the java case-sensitive flag but it's not ideal.

Children