Match

Description

Determines whether a string's value contains a particular pattern of characters.

Syntax

Match ( string, textpattern )

Argument

Description

string

The string in which you want to look for a pattern of characters

textpattern

A string whose value is the text pattern


Return value

Boolean. Returns true if string matches textpattern and false if it does not. Match also returns false if either argument has not been assigned a value or the pattern is invalid.

Usage

Match enables you to evaluate whether a string contains a general pattern of characters. To find out whether a string contains a specific substring, use the Pos function.

Textpattern is similar to a regular expression. It consists of metacharacters, which have special meaning, and ordinary characters, which match themselves. You can specify that the string begin or end with one or more characters from a set, or that it contain any characters except those in a set.

A text pattern consists of metacharacters, which have special meaning in the match string, and nonmetacharacters, which match the characters themselves.

The following tables explain the meaning and use of these metacharacters:

Metacharacter

Meaning

Example

Caret (^)

Matches the beginning of a string

^C matches C at the beginning of a string.

Dollar sign ($)

Matches the end of a string

s$ matches s at the end of a string.

Period (.)

Matches any character

. . . matches three consecutive characters.

Backslash (\)

Removes the following metacharacter's special characteristics so that it matches itself

\$ matches $.

Character class (a group of characters enclosed in square brackets [ ])

Matches any of the enclosed characters

[AEIOU] matches A, E, I, O, or U.

You can use hyphens to abbreviate ranges of characters in a character class. For example, [A-Za-z] matches any letter.

Complemented character class (first character inside the square brackets is a caret)

Matches any character not in the group following the caret

[^0-9] matches any character except a digit, and [^A-Za-z] matches any character except a letter.


The metacharacters asterisk (*), plus (+), and question mark (?) are unary operators that are used to specify repetitions in a regular expression:

Metacharacter

Meaning

Example

* (asterisk)

Indicates zero or more occurrences

A* matches zero or more As (no As, A, AA, AAA, and so on)

+ (plus)

Indicates one or more occurrences

A+ matches one A or more than one A (A, AAA, and so on)

? (question mark)

Indicates zero or one occurrence

A? matches an empty string ("") or A


Sample patterns

The following table shows various text patterns and sample text that matches each pattern:

This pattern

Matches

AB

Any string that contains AB, such as ABA, DEABC, graphAB_one.

B*

Any string that contains 0 or more Bs, such as AC, B, BB, BBB, ABBBC, and so on. Since B* used alone matches any string, you would not use it alone, but notice its use in some the following examples.

AB*C

Any string containing the pattern AC or ABC or ABBC, and so on (0 or more Bs).

AB+C

Any string containing the pattern ABC or ABBC or ABBBC, and so on (1 or more Bs).

ABB*C

Any string containing the pattern ABC or ABBC or ABBBC, and so on (1 B plus 0 or more Bs).

^AB

Any string starting with AB.

AB?C

Any string containing the pattern AC or ABC (0 or 1 B).

^[ABC]

Any string starting with A, B, or C.

[^ABC]

A string containing any characters other than A, B, or C.

^[^abc]

A string that begins with any character except a, b, or c.

^[^a-z]$

Any single-character string that is not a lowercase letter (^ and $ indicate the beginning and end of the string).

[A-Z]+

Any string with one or more uppercase letters.

^[0-9]+$

Any string consisting only of digits.

^[0-9][0-9][0-9]$

Any string consisting of exactly three digits.

^([0-9][0-9][0-9])$

Any string consisting of exactly three digits enclosed in parentheses.


Examples

This validation rule checks that the value the user entered begins with an uppercase letter. If the value of the expression is false, the data fails validation:

Match(GetText(), "^[A-Z]")

See also

Pos

Match in the section called “Match” in PowerScript Reference