Оператор Like (Visual Basic)Like Operator (Visual Basic)

Сравнивает строку с шаблоном.Compares a string against a pattern.

СинтаксисSyntax

result = string Like pattern  

ЧастиParts

result
Обязательно.Required. Любой Boolean переменной.Any Boolean variable. В результате Boolean значение, указывающее, ли string удовлетворяет pattern.The result is a Boolean value indicating whether or not the string satisfies the pattern.

string
Обязательно.Required. Произвольное выражение String.Any String expression.

pattern
Обязательно.Required. Любой String выражения, согласующееся с правилами соответствия шаблону описано в разделе «Примечания».Any String expression conforming to the pattern-matching conventions described in "Remarks."

ПримечанияRemarks

Если значение в string соответствует шаблону в pattern, resultTrue.If the value in string satisfies the pattern contained in pattern, result is True. Если строка не удовлетворяет шаблон resultFalse.If the string does not satisfy the pattern, result is False. Если оба string и pattern являются пустыми строками, в результате True.If both string and pattern are empty strings, the result is True.

Метод сравненияComparison Method

Поведение Like зависит от оператора Option Compare Statement.The behavior of the Like operator depends on the Option Compare Statement. Метод сравнения строк по умолчанию для каждого исходного файла является Option Compare Binary.The default string comparison method for each source file is Option Compare Binary.

Параметры шаблонаPattern Options

Сопоставление встроенных шаблонов представляет собой универсальный инструмент для сравнения строк.Built-in pattern matching provides a versatile tool for string comparisons. Средства подбора шаблона позволяют сопоставлять каждый символ в string определенный символ, подстановочный знак, список символ или диапазон символов.The pattern-matching features allow you to match each character in string against a specific character, a wildcard character, a character list, or a character range. В следующей таблице показаны допустимые символы в pattern и их соответствия.The following table shows the characters allowed in pattern and what they match.

Символы в patternCharacters in pattern По условию поиска stringMatches in string
? Любой отдельный знакAny single character
* Ноль или более символовZero or more characters
# Любая отдельная цифра (0 – 9)Any single digit (0–9)
[charlist] Любой символ в charlistAny single character in charlist
[!charlist] Любой знак не в charlistAny single character not in charlist

Список знаковCharacter Lists

Группа из одного или нескольких символов (charlist) заключена в квадратные скобки ([ ]) может использоваться для соответствует любому одиночному символу в string и может включать практически любой код символа, включая цифр.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.

Восклицательный знак (!) в начале charlist означает, что соответствие выполняются, если любой символ, кроме символов в charlist находится в string.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.

Специальные символыSpecial Characters

Для сопоставления левой скобки специальные символы ([), вопросительный знак (?), знак номера (#) и звездочка (*), заключите их в скобки.To match the special characters left bracket ([), question mark (?), number sign (#), and asterisk (*), enclose them in brackets. Закрывающая квадратная скобка (]) нельзя использовать в группе для сопоставления с самим собой, но он может использоваться за пределами группы как отдельный символ.The right bracket (]) cannot be used within a group to match itself, but it can be used outside a group as an individual character.

Последовательность символов [] считается строкой нулевой длины ("").The character sequence [] is considered a zero-length string (""). Однако он не может быть частью список символов, заключенный в квадратные скобки.However, it cannot be part of a character list enclosed in brackets. Если требуется проверить, является ли позиция в string содержит одну группу символов или вообще ни один знак, можно использовать Like дважды.If you want to check whether a position in string contains one of a group of characters or no character at all, you can use Like twice. Пример см. в разделе как: сравнение строки на соответствие шаблону.For an example, see How to: Match a String against a Pattern.

Диапазоны знаковCharacter Ranges

С помощью дефиса () для разделения нижней и верхней границы диапазона charlist можно указать диапазон символов.By using a hyphen () to separate the lower and upper bounds of the range, charlist can specify a range of characters. Например [A–Z] приводит к совпадению, если соответствующий символ поместите в string содержит любой знак в пределах диапазона AZ, и [!H–L] приводит к совпадению, если соответствующий символ позиции любые символы вне диапазона HL.For example, [A–Z] results in a match if the corresponding character position in string contains any character within the range AZ, and [!H–L] results in a match if the corresponding character position contains any character outside the range HL.

При указании диапазона символов, они должны располагаться в порядке возрастания, то есть, от меньшего к большему.When you specify a range of characters, they must appear in ascending sort order, that is, from lowest to highest. Таким образом [A–Z] является допустимым шаблоном, но [Z–A] не является.Thus, [A–Z] is a valid pattern, but [Z–A] is not.

Несколько символьных диапазоновMultiple Character Ranges

Чтобы указать несколько диапазонов для одной позиции символа, поместите их в одни квадратные скобки без разделителей.To specify multiple ranges for the same character position, put them within the same brackets without delimiters. Например [A–CX–Z] приводит к совпадению, если соответствующий символ поместите в string содержит любой знак в любом диапазоне AC или диапазон XZ.For example, [A–CX–Z] results in a match if the corresponding character position in string contains any character within either the range AC or the range XZ.

Использование дефисаUsage of the Hyphen

Дефис () могут отображаться в начале (после восклицательный знак, если таковые имеются) или в конце charlist для сопоставления с самим собой.A hyphen () can appear either at the beginning (after an exclamation point, if any) or at the end of charlist to match itself. В любом другом месте дефис обозначает диапазон символов, ограниченный знаками по обе стороны от дефиса.In any other location, the hyphen identifies a range of characters delimited by the characters on either side of the hyphen.

Порядок сортировкиCollating Sequence

Значение указанного диапазона зависит от порядка во время выполнения, что определяется знаков Option``Compare и локали системы выполняется код.The meaning of a specified range depends on the character ordering at run time, as determined by Option``Compare and the locale setting of the system the code is running on. С Option``Compare``Binary, диапазон [A–E] соответствует A, B, C, D, и E.With Option``Compare``Binary, the range [A–E] matches A, B, C, D, and E. С Option``Compare``Text, [A–E] соответствует A, a, À, à, B, b, C, c, D, d, E, и e.With Option``Compare``Text, [A–E] matches A, a, À, à, B, b, C, c, D, d, E, and e. Диапазон не соответствует Ê или ê так, как диакритические знаки сортируются после стандартных в порядке сортировки.The range does not match Ê or ê because accented characters collate after unaccented characters in the sort order.

Знаки диграфыDigraph Characters

В некоторых языках существуют буквенные символы, которые представляют два отдельных знака.In some languages, there are alphabetic characters that represent two separate characters. Например, несколько языков использовать символ æ для представления символов a и e при отображении друг с другом.For example, several languages use the character æ to represent the characters a and e when they appear together. Like Оператор распознает, что один диграф и два отдельных знака эквивалентны.The Like operator recognizes that the single digraph character and the two individual characters are equivalent.

Если язык, который используется диграф указан в параметрах языкового стандарта системы, возникновение один диграф в любом pattern или string соответствует равнозначной последовательности двух знаков в другой строке.When a language that uses a digraph character is specified in the system locale settings, an occurrence of the single digraph character in either pattern or string matches the equivalent two-character sequence in the other string. Аналогичным образом диграф в pattern заключена в квадратные скобки (сам по себе, в списке или в диапазоне) соответствует равнозначной последовательности двух знаков в string.Similarly, a digraph character in pattern enclosed in brackets (by itself, in a list, or in a range) matches the equivalent two-character sequence in string.

ПерегрузкаOverloading

Like Оператор может быть перегружены, что означает, что класс или структура может переопределить его поведение, если операнд имеет тип этого класса или структуры.The Like operator can be overloaded, which means that a class or structure can redefine its behavior when an operand has the type of that class or structure. Если ваш код использует этот оператор для такого класса или структуры, убедитесь, что его переопределенное.If your code uses this operator on such a class or structure, be sure you understand its redefined behavior. Дополнительные сведения см. в разделе процедуры оператора.For more information, see Operator Procedures.

ПримерExample

В этом примере используется Like оператор для сравнения строк с различными шаблонами.This example uses the Like operator to compare strings to various patterns. Результаты переходят в Boolean переменной, указывающее, удовлетворяет ли каждая строка шаблону.The results go into a Boolean variable indicating whether each string satisfies the pattern.

Dim testCheck As Boolean
' The following statement returns True (does "F" satisfy "F"?)
testCheck = "F" Like "F"
' The following statement returns False for Option Compare Binary
'    and True for Option Compare Text (does "F" satisfy "f"?)
testCheck = "F" Like "f"
' The following statement returns False (does "F" satisfy "FFF"?)
testCheck = "F" Like "FFF"
' The following statement returns True (does "aBBBa" have an "a" at the
'    beginning, an "a" at the end, and any number of characters in 
'    between?)
testCheck = "aBBBa" Like "a*a"
' The following statement returns True (does "F" occur in the set of
'    characters from "A" through "Z"?)
testCheck = "F" Like "[A-Z]"
' The following statement returns False (does "F" NOT occur in the 
'    set of characters from "A" through "Z"?)
testCheck = "F" Like "[!A-Z]"
' The following statement returns True (does "a2a" begin and end with
'    an "a" and have any single-digit number in between?)
testCheck = "a2a" Like "a#a"
' The following statement returns True (does "aM5b" begin with an "a",
'    followed by any character from the set "L" through "P", followed
'    by any single-digit number, and end with any character NOT in
'    the character set "c" through "e"?)
testCheck = "aM5b" Like "a[L-P]#[!c-e]"
' The following statement returns True (does "BAT123khg" begin with a
'    "B", followed by any single character, followed by a "T", and end
'    with zero or more characters of any type?)
testCheck = "BAT123khg" Like "B?T*"
' The following statement returns False (does "CAT123khg"?) begin with
'    a "B", followed by any single character, followed by a "T", and
'    end with zero or more characters of any type?)
testCheck = "CAT123khg" Like "B?T*"

См. такжеSee Also

InStr
StrComp
Операторы сравненияComparison Operators
Порядок применения операторов в Visual BasicOperator Precedence in Visual Basic
Список операторов, сгруппированных по функциональному назначениюOperators Listed by Functionality
Оператор Option CompareOption Compare Statement
Операторы и выраженияOperators and Expressions
Практическое руководство. Сравнение строки на соответствие с шаблономHow to: Match a String against a Pattern