The match relational operator tests a string and determines if it matches a predefined pattern of alphabetical, numeric, wildcard, or literal characters.
Syntax
str.exp1 match str.exp2 |
Synonym(s)
matches |
Parameter(s)
str.exp1 |
String to test. |
|
str.exp2 |
A composite of literals and/or match operators, appended to length specifications. String operators are: |
|
ma |
Accepts only m alphabetical characters. No spaces allowed |
|
mn |
Accepts only m numeric characters. (+,- and . are not considered numeric.) |
|
mx |
Accepts m wildcards (any character). |
|
literal |
Accepts any literal string enclosed in single quotation marks. |
When combinations of match strings and literals are present, the entire match string must be enclosed in double quotation marks. The m parameter, which specifies the length of the match operator string, if 0 (zero) will match 0 or more of the specified match operator. This means that the null string will match any 0 length pattern match.
Description
The match operator compares a string value to a predefined pattern and evaluates to 1 (true) or 0 (false).
The iconv() function, using the p (pattern match) processing code, provides similar functionality to the match operator. The difference is that iconv() can perform multiple pattern matches at once, where the match requires multiple statements.
NOTE |
The results of a nondeterministic match operator are undefined and should be avoided. For instance, if response matches ’0na’. |
Example(s)
This statement takes the then path if the answer is 3 numerics.
if answer matches "3n" then print "ok" |
This checks that the value of the variable soc.sec.num has the pattern of 3 numerics,- , 2 numerics,- , and 4 numerics.
if soc.sec.num matches "3n’-’2n’-’4n" then... |
The then clause is taken if response is not any number of numerics.
if not(response matches "0n") then... |
This accepts any length of numerics, a comma, any length of numerics, a comma, and any length of numerics.
if response = "0n’,’0n’,’0n" then... |
See Also