Поделиться через


Практическое руководство. Сравнение строки на соответствие с шаблоном (Visual Basic)

Если вы хотите узнать, соответствует ли выражение типа строковых данных шаблону, можно использовать оператор Like.

Like принимает два операнда. Левый операнд представляет собой строковое выражение, а правый операнд — это строка, содержащая шаблон, используемый для сопоставления. LikeBoolean возвращает значение, указывающее, соответствует ли строковое выражение шаблону.

Каждый символ в строковом выражении можно сопоставить с определенным символом, диким карта символом, списком символов или диапазоном символов. Позиции спецификаций в строке шаблона соответствуют позициям символов, которые должны быть сопоставлены в строковом выражении.

Сопоставление символа в строковом выражении с определенным символом

Поместите конкретный символ непосредственно в строку шаблона. Некоторые специальные символы должны быть заключены в квадратные скобки ([ ]). Дополнительные сведения см. в разделе "Оператор 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 символы, за которыми следует ровно один из символов numi, , j, k, lmилиn.

Dim sMatch As Boolean = myString Like "num[i-m]"

Обратите внимание, что это совпадение учитывает регистр.

Сопоставление пустых строк

Like обрабатывает последовательность [] как строку нулевой длины (""). Можно использовать [] для проверки того, является ли целое строковое выражение пустым, но его нельзя использовать для проверки, является ли определенное положение в строковом выражении пустым. Если пустая позиция является одним из вариантов, которые необходимо протестировать, можно использовать Like несколько раз.

Сопоставление символа в строковом выражении со списком символов или без символов

  1. Like Вызовите оператор дважды в одном строковом выражении и подключите два вызова с оператором Or Или OrElse.

  2. В строке шаблона для первого Like предложения добавьте список символов, заключенный в квадратные скобки ([ ]).

  3. В строке шаблона для второго Like предложения не помещайте какой-либо символ в вопрос.

    В следующем примере проверяется семизначный номер phoneNum телефона для ровно трех числовых цифр, за которым следует пробел, дефис (), период (.) или символ вообще, за которым следует ровно четыре числовые цифры.

    Dim sMatch As Boolean = 
      (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")
    

См. также