LogoLogo
3.6.9
3.6.9
  • Introduction
  • Getting started
    • Installation
      • Prerequisites
        • Server requirements
      • On-premises
        • Single-node
          • Directory structure
        • Multi-node
      • Azure Market Place
      • AWS Market Place
    • Tutorials
      • Amazon AWS CUR
      • Amazon AWS CUR (Athena)
      • Azure Stack
      • Azure EA
      • Azure CSP
      • Google Cloud
      • VMware vCloud
      • VMware vCenter
    • How-to guides
      • How to configure receiving a monthly billing report
      • How to automatically trigger a monthly billing report
      • How to update your license
      • How to store contract information with an Account in a report
      • How to automatically send workflow errors as webhooks to a monitoring system
    • Concepts
      • User interface
      • Services
    • Releases
      • Upgrading to version 3
      • Known issues
      • Announcements
      • Archive
  • Reports
    • Accounts
    • Services
    • Instances
    • Summary
    • Budget
  • Services
    • Manage
    • Rates
      • Tiered Services
        • Aggregation Levels and the Account Hierarchy
    • Adjustments
    • Subscriptions
  • ACCOUNTS
    • Budget management
  • Data pipelines
    • Extract
      • Configuration
      • Extractor templates
      • Script basics
      • Parslets
      • Subroutines
        • check_dateformat
        • check_dateargument
        • format_date
        • validate_response
      • Language
        • aws_sign_string
        • basename
        • buffer
        • csv
        • clear
        • decimal_to_ipv4
        • discard
        • encode
        • encrypt
        • environment
        • escape
        • exit_loop
        • foreach
        • generate_jwt
        • get_last_day_of
        • gosub
        • gunzip
        • hash
        • http
        • if
        • ipv4_to_decimal
        • json
        • loglevel
        • loop
        • lowercase
        • match
        • pause
        • print
        • return
        • save
        • set
        • subroutine
        • terminate
        • unzip
        • uppercase
        • uri
        • var
    • Transform
      • Configuration
      • Transformer templates
      • Transform Preview
      • Language
        • aggregate
        • append
        • calculate
        • capitalise
        • convert
        • copy
        • correlate
        • create
        • default
        • delete
        • dequote
        • environment
        • event_to_usage
        • export
        • finish
        • Functions
        • if
        • import
        • include
        • lowercase
        • normalise
        • option
        • rename
        • replace
        • round
        • services
        • set
        • sort
        • split
        • terminate
        • timecolumns
        • timerender
        • timestamp
        • update_service
        • uppercase
        • var
        • where
    • Datasets
    • Lookups
    • Metadata
    • Reports
    • Workflows
  • Administration
    • User management
      • Users
      • Groups
    • Notifications
      • Budget Notifications
      • Report notifications
      • Workflow notifications
    • Settings
      • Global Variables
      • White Labeling
  • Advanced
    • Integrate
      • GUI automation
        • Examples
      • API docs
      • Single sign-on
        • Claims-based identity provisioning: users, Account access and user groups
        • Azure-AD
        • Auth0
        • OKTA
        • OneLogin
        • ADFS
        • LDAP
    • Digging deeper
      • Authentication flows
      • Transformer datadate
      • Dataset lifecycle
      • Config.json
      • Databases
  • Security
    • Security
    • Authentication
      • Token
      • LDAP
      • SAML2
    • Password reset
    • Password policy
    • Announcements
  • Troubleshooting
    • Logs
  • Terms & Conditions
  • Privacy Policy
Powered by GitBook
On this page
  • Syntax
  • Details
  • Label
  • Expression
  • Target
  • Examples

Was this helpful?

Export as PDF
  1. Data pipelines
  2. Extract
  3. Language

match

PreviouslowercaseNextpause

Last updated 3 years ago

Was this helpful?

The match statement is to used search either a specified string or the contents of a named using a regular expression.

Syntax

matchlabel expression target

Details

The three parameters serve the following purposes:

Parameter

Value

label

A unique name to associate with this match

expression

The regular expression to apply to the target

target

The data to search using the expression

Label

The label associates a meaningful name to the search. Once the match has been attempted, two variables will be created or updated as follows:

Variable

Possible values

Notes

label.STATUS

MATCH NOMATCH ERROR

The result of applying the expression (ERROR infers an invalid expression)

label.RESULT

(A string) (Empty value)

The text matched by the subgroup in the expression, if any

These variables can be checked after the match in order to determine the result status and access the results.

Expression

The regular expression must contain one or more characters enclosed in brackets - ( ... ) - the contents of which are termed a subgroup. If a successful match is made then the portion of the target text that was matched by the subgroup will be returned in the _label.RESULT_variable.

Target

The target determines whether a supplied string or the contents of a named buffer are searched. By default the parameter will be treated as a string.

If the string contains white-space then it must be enclosed in double quotes

If the target argument is surrounded with curly braces - { ... } - then it is taken to be the name of a buffer and the expression will be applied to the contents of that buffer.

Regular expressions are generally used for searching ASCII data. Searching binary data is possible but may be of limited usefulness.

Examples

Search the contents of a variable for the text following the word 'connection:' with or without a capital 'C':

match varsearch "[Cc]onnection: (.*)" ${variable}
if (${varsearch.STATUS} = MATCH) {
    print Connection string is: ${varsearch.RESULT}
} else {
    print No match found
}

Search a text file previously retrieved from a HTTP request to locate the word 'Error' or 'error'

match error_check "([Ee]rror)" {text_data}
if (${error_check.STATUS} == MATCH) {
    print Found: ${error_check.RESULT}
} else {
    print No error was found
}
buffer