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
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.Na cadeia de caracteres padrão da primeira cláusula
Like
, inclua a lista de caracteres, contida entre colchetes ([ ]
).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 "#######")