Partilhar via


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

Se você quiser descobrir se uma expressão do tipo de dados String satisfaz um padrão, então você pode usar o operador like.

Like usa dois operandos. O operando esquerdo é uma expressão de cadeia de caracteres e o operando direito é 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 String satisfaz o padrão.

Você pode fazer a correspondência entre cada caractere na expressão de cadeia de caracteres e 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 do padrão correspondem às posições dos caracteres a serem correspondidos na expressão da cadeia de caracteres.

Para fazer a correspondência entre um caractere na expressão de cadeia de caracteres e um caractere específico

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

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

Dim sMatch As Boolean = myString Like "H"

Para fazer a correspondência entre um caractere na expressão de cadeia de caracteres e um caractere curinga

Coloque um ponto de interrogação (?) na cadeia de caracteres padrão. Qualquer personagem válido nesta posição faz uma partida bem-sucedida.

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

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

Para fazer a correspondência entre um caractere na expressão de cadeia de caracteres e 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 myString consiste em qualquer caractere válido seguido por exatamente um dos caracteres A, Cou E.

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

Observe que essa correspondência diferencia maiúsculas de minúsculas.

Para fazer a correspondência entre um caractere na expressão de cadeia de caracteres e um intervalo de caracteres

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

O exemplo a seguir testa se myString consiste nos caracteres num seguidos por exatamente um dos caracteres i, j, , kl, m, ou n.

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

Observe que essa correspondência diferencia maiúsculas de 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ê pode usar Like mais de uma vez.

Para fazer a correspondência entre um caractere na expressão de cadeia de caracteres e uma lista de caracteres ou 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 para a 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, seguidos 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