Compartilhar via


Como fazer a correspondência de uma cadeia de caracteres com um padrão (Visual Basic)

Se você quiser descobrir se uma expressão do Tipo de Dados de Cadeia de Caracteres satisfaz um padrão, use o Operador Like.

Like usa dois operandos. O operando à esquerda é uma expressão de cadeia de caracteres, e o operando à direita é uma cadeia de caracteres que contém o padrão a ser usado para correspondência. Like retorna um Boolean valor que indica se a expressão de cadeia de caracteres satisfaz o padrão.

Você pode corresponder cada caractere na expressão de cadeia de caracteres com um caractere específico, um caractere curinga, uma lista de caracteres ou um intervalo de caracteres. As posições das especificações na cadeia de caracteres padrão equivalem às posições dos caracteres a serem correspondidos na expressão de cadeia de caracteres.

Para fazer corresponder um caractere em uma sequência de caracteres a um caractere específico

Coloque o caractere específico diretamente na cadeia de caracteres padrão. Determinados caracteres especiais devem ser colocados entre colchetes ([ ]). Para obter mais informações, consulte Like Operator.

O exemplo a seguir testa se myString consiste exatamente no caractere Húnico.

Dim sMatch As Boolean = myString Like "H"

Para corresponder um caractere na expressão de cadeia de caracteres com um caractere curinga

Coloque um ponto de interrogação (?) na cadeia de caracteres padrão. Qualquer caractere válido nessa posição faz uma correspondência bem-sucedida.

O exemplo a seguir testa se myString consiste no caractere W único seguido por exatamente dois caracteres de qualquer valor.

Dim sMatch As Boolean = myString Like "W??"

Para verificar a correspondência de um caractere na expressão de cadeia de caracteres com uma lista de caracteres

Coloque colchetes ([ ]) na cadeia de caracteres padrão e, dentro dos colchetes, coloque a lista de caracteres. Não separe os caracteres com vírgulas ou qualquer outro separador. Qualquer caractere na lista faz uma correspondência bem-sucedida.

O exemplo a seguir testa se consiste myString em qualquer caractere válido seguido por exatamente um dos caracteres A, Cou E.

Dim sMatch As Boolean = myString Like "?[ACE]"

Essa correspondência diferencia maiúsculas e minúsculas.

Para comparar um caractere na string com uma faixa de caracteres

Coloque colchetes ([ ]) na cadeia de caracteres padrão e, dentro dos colchetes, coloque os caracteres mais baixos e mais altos no intervalo, separados por um hífen (). Qualquer caractere único dentro do intervalo faz uma correspondência bem-sucedida.

O exemplo a seguir testa se consiste myString nos caracteres num seguidos por exatamente um dos caracteres i, j, , k, l, mou n.

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

Essa correspondência diferencia maiúsculas e minúsculas.

Correspondência de cadeias de caracteres vazias

Like trata a sequência [] como uma cadeia de caracteres de comprimento zero (""). Você pode usar [] para testar se a expressão de cadeia de caracteres inteira está vazia, mas não é possível usá-la para testar se uma posição específica na expressão de cadeia de caracteres está vazia. Se uma posição vazia for uma das opções para as quais você precisa testar, você poderá usar Like mais de uma vez.

Para corresponder um caractere na expressão de cadeia de caracteres com uma lista de caracteres ou com nenhum caractere

  1. Chame o Like operador duas vezes na mesma expressão de cadeia de caracteres e conecte as duas chamadas com o Operador Or ou o Operador OrElse.

  2. Na cadeia de caracteres padrão da primeira Like cláusula, inclua a lista de caracteres, entre colchetes ([ ]).

  3. Na cadeia de caracteres padrão da segunda Like cláusula, não coloque nenhum caractere na posição em questão.

    O exemplo a seguir testa o número phoneNum de telefone de sete dígitos para exatamente três dígitos numéricos, seguido por um espaço, um hífen (), um ponto (.) ou nenhum caractere, seguido por exatamente quatro dígitos numéricos.

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

Consulte também