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


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

Обновлен: Ноябрь 2007

Если нужно узнать, удовлетворяет ли выражение Строковый тип данных (String) (Visual Basic) шаблону, можно использовать Оператор Like (Visual Basic).

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

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

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

  • Поместите указанный символ непосредственно в строку шаблона. Некоторые специальные символы должны заключаться в скобки ([ ]). Дополнительные сведения см. в разделе Оператор Like (Visual Basic).

    В следующем примере проверяется состоит ли строка 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 несколько раз.

Проверка наличия символа строкового выражения в списке символов

  1. Вызовите оператор Like дважды для одного строкового выражения и объедините оба вызова с помощью Оператор Or (Visual Basic) или Оператор OrElse.

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

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

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

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

См. также

Основные понятия

Операторы и выражения в Visual Basic

Ссылки

Операторы сравнения (Visual Basic)

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

Строковый тип данных (String) (Visual Basic)