Compartilhar via


Como corresponder uma cadeia de caracteres a 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, você pode usar o Operador Curtida.

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 valor Boolean 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 corresponder um caractere na expressão de cadeia de caracteres com um caractere específico

Insira 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 Operador Curtida.

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

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 único W seguido por exatamente dois caracteres de qualquer valor.

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

Para corresponder 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 por vírgulas ou qualquer outro separador. Qualquer caractere na lista faz uma correspondência bem-sucedida.

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

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

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

Para corresponder um caractere na expressão da cadeia de caracteres com um intervalo 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 myString consiste em um dos caracteres num seguido por exatamente um dos caracteres i, j, k, l, m ou 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 pode 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 operador Like 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 cláusula Like, inclua a lista de caracteres, contida entre colchetes ([ ]).

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

    O exemplo a seguir testa o número de telefone de sete dígitos phoneNum 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 "#######")
    

Confira também