# match relational operator

The match relational operator tests
a string and determines if it matches a predefined pattern of alphabetical,
numeric, wildcard, or literal characters.

**Synonyms:** matches

## Syntax

```
str.exp1 match str.exp2
```

## 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

- [alpha() function](https://d3codex.com/pickbasic-flashbasic/alpha-function/)
- [case statement](https://d3codex.com/pickbasic-flashbasic/case-statement/)
- [iconv() function](https://d3codex.com/pickbasic-flashbasic/iconv-function/)
- [if statement](https://d3codex.com/pickbasic-flashbasic/if-statement/)
- [ifr statement](https://d3codex.com/pickbasic-flashbasic/ifr-statement/)
- [num() function](https://d3codex.com/pickbasic-flashbasic/num-function/)
- [p (pattern match) processing code](https://d3codex.com/processingcodes/p-pattern-match-processing-code/)
- [then clause](https://d3codex.com/pickbasic-flashbasic/then-clause/)
- [then/else statement blocks](https://d3codex.com/pickbasic-flashbasic/then-else-statement-blocks/)

---
Source: https://d3codex.com/pickbasic-flashbasic/match-relational-operator/ - part of the D3Codex reference.
