|
Like Operator
Used
to compare two strings.
Syntax
result = string Like pattern
The
Like operator syntax has these parts:
|
Part |
Description |
|
result |
Required; any numeric
variable. |
|
string |
Required; any string expression.
|
|
pattern |
Required; any string expression conforming to the pattern-matching
conventions described in Remarks. |
Remarks
If
string matches pattern, result is True; if there is
no match, result is False. If either string or pattern is Null,
result is Null.
The behavior of the Like operator depends on
the Option Compare statement. The default
string-comparison
method for each
module is Option
Compare Binary.
Option Compare Binary results in string comparisons based on a sort
order derived from the internal binary representations of the characters.
Sort order is determined by the code page. In the following example, a
typical binary sort order is shown:
A < B
< E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
Option Compare Text results in string
comparisons based on a case-insensitive, textual sort order determined by
your system's
locale. When you sort
The same characters using Option Compare Text, the following text
sort order is produced:
(A=a)
< (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)
Built-in pattern matching provides a versatile tool for string comparisons.
The pattern-matching features allow you to use wildcard characters,
character lists, or character ranges, in any combination, to match strings.
The following table shows the characters allowed in pattern and what
they match:
|
Characters in
pattern |
Matches in
string |
|
? |
Any single character. |
|
* |
Zero or more characters. |
|
# |
Any single digit (0–9). |
|
[charlist] |
Any single character in
charlist. |
|
[!charlist] |
Any single character not in
charlist. |
A
group of one or more characters (charlist) enclosed in brackets ([
]) can be used to match any single character in string and can
include almost any character code, including digits.
Note To
match the special characters left bracket ([), question mark (?),
number sign (#), and asterisk (*), enclose them in brackets.
The right bracket (]) can't be used within a group to match itself,
but it can be used outside a group as an individual character.
By using a hyphen (–) to separate the
upper and lower bounds of the range, charlist can specify a range of
characters. For example,
[A-Z]
results in a match if the corresponding character position in string
contains any uppercase letters in the range A–Z. Multiple ranges are
included within the brackets without delimiters.
The meaning of a specified range depends on the
character ordering valid at run time (as determined by Option Compare
and the locale setting of the system the code is running on). Using the Option Compare Binary example, the range
[A–E] matches A, B and E. With
Option
Compare Text, [A–E]
matches A, a, À, à, B, b, E, e. The range does not match Ê or ê because
accented characters fall after unaccented characters in the sort order.
Other
important rules for pattern matching include the following:
-
An
exclamation point (!) at the beginning of charlist means
that a match is made if any character except the characters in charlist
is found in string. When used outside brackets, the exclamation
point matches itself.
-
A
hyphen (–) can appear either at the beginning (after an exclamation
point if one is used) or at the end of charlist to match itself. In
any other location, the hyphen is used to identify a range of characters.
-
When a range of characters is specified, they
must appear in ascending sort order (from lowest to highest).
[A-Z]
is a valid pattern, but [Z-A]
is not.
-
The character sequence
[]
is considered a zero-length string ("").
In
some languages, there are special characters in the alphabet that represent
two separate characters. For example, several languages use the character
"æ" to represent the characters "a" and "e" when they appear together. The
Like operator recognizes that the single special character and the
two individual characters are equivalent.
When
a language that uses a special character is specified in the system locale
settings, an occurrence of the single special character in either pattern
or string matches the equivalent 2-character sequence in the other
string. Similarly, a single special character in pattern enclosed in
brackets (by itself, in a list, or in a range) matches the equivalent
2-character sequence in string..
|