Практическое руководство. Сравнение строки на соответствие с шаблоном (Visual Basic)
Если вы хотите узнать, соответствует ли выражение типа строковых данных шаблону, можно использовать оператор Like.
Like
принимает два операнда. Левый операнд представляет собой строковое выражение, а правый операнд — это строка, содержащая шаблон, используемый для сопоставления. Like
Boolean
возвращает значение, указывающее, соответствует ли строковое выражение шаблону.
Каждый символ в строковом выражении можно сопоставить с определенным символом, диким карта символом, списком символов или диапазоном символов. Позиции спецификаций в строке шаблона соответствуют позициям символов, которые должны быть сопоставлены в строковом выражении.
Сопоставление символа в строковом выражении с определенным символом
Поместите конкретный символ непосредственно в строку шаблона. Некоторые специальные символы должны быть заключены в квадратные скобки ([ ]
). Дополнительные сведения см. в разделе "Оператор like".
В следующем примере проверяется, состоит ли myString
именно один символ H
.
Dim sMatch As Boolean = myString Like "H"
Сопоставление символа в строковом выражении с диким карта символом
Поместите вопросительный знак (?
) в строку шаблона. Любой допустимый символ в этой позиции делает успешное совпадение.
В следующем примере проверяется, состоит ли myString
один символ W
, за которым следует ровно два символа любых значений.
Dim sMatch As Boolean = myString Like "W??"
Сопоставление символа в строковом выражении со списком символов
Поместите скобки ([ ]
) в строку шаблона и внутри квадратных скобок поместите список символов. Не разделяйте символы запятыми или любым другим разделителем. Любой отдельный символ в списке делает успешное совпадение.
В следующем примере проверяется, состоит ли myString
любой допустимый символ, за которым следует ровно один из символов A
, C
или E
.
Dim sMatch As Boolean = myString Like "?[ACE]"
Обратите внимание, что это совпадение учитывает регистр.
Сопоставление символа в строковом выражении с диапазоном символов
Поместите квадратные скобки ([ ]
) в строку шаблона и внутри квадратных скобок помещают самые низкие и самые высокие символы в диапазоне, разделенные дефисом (–
). Любой отдельный символ в диапазоне делает успешное совпадение.
В следующем примере проверяется, состоит ли myString
символы, за которыми следует ровно один из символов num
i
, , j
, k
, l
m
илиn
.
Dim sMatch As Boolean = myString Like "num[i-m]"
Обратите внимание, что это совпадение учитывает регистр.
Сопоставление пустых строк
Like
обрабатывает последовательность []
как строку нулевой длины (""
). Можно использовать []
для проверки того, является ли целое строковое выражение пустым, но его нельзя использовать для проверки, является ли определенное положение в строковом выражении пустым. Если пустая позиция является одним из вариантов, которые необходимо протестировать, можно использовать Like
несколько раз.
Сопоставление символа в строковом выражении со списком символов или без символов
Like
Вызовите оператор дважды в одном строковом выражении и подключите два вызова с оператором Or Или OrElse.В строке шаблона для первого
Like
предложения добавьте список символов, заключенный в квадратные скобки ([ ]
).В строке шаблона для второго
Like
предложения не помещайте какой-либо символ в вопрос.В следующем примере проверяется семизначный номер
phoneNum
телефона для ровно трех числовых цифр, за которым следует пробел, дефис (), период (–
.
) или символ вообще, за которым следует ровно четыре числовые цифры.Dim sMatch As Boolean = (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")