Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Compara uma cadeia de caracteres com um padrão.
Importante
Atualmente Like , não há suporte para o operador em projetos .NET Core e .NET Standard.
Sintaxe
result = string Like pattern
Partes
result
Obrigatório Qualquer Boolean variável. O resultado é um Boolean valor que indica se o stringpattern.
string
Obrigatório Qualquer String expressão.
pattern
Obrigatório Qualquer String expressão em conformidade com as convenções de correspondência de padrões descritas em "Comentários".
Observações
Se o valor em string atender ao padrão contido em pattern, result será True. Se a cadeia de caracteres não atender ao padrão, result será False. Se ambas string e pattern forem cadeias de caracteres vazias, o resultado será True.
Método de comparação
O comportamento do Like operador depende da instrução Option Compare. O método de comparação de cadeia de caracteres padrão para cada arquivo de origem é Option Compare Binary.
Opções de padrão
Os padrões correspondentes internos fornecem uma ferramenta versátil para comparações de cadeia de caracteres. Os recursos de padrões correspondentes permitem que você faça a correspondência de cada caractere em string com um caractere específico, curinga, uma lista de caracteres ou um intervalo deles. A tabela a seguir mostra os caracteres permitidos em pattern e os respectivos correspondentes.
Caracteres em pattern |
Correspondências em string |
|---|---|
? |
Qualquer caractere único |
* |
Zero ou mais caracteres |
# |
Qualquer dígito único (de 0 a 9) |
[charlist] |
Qualquer caractere único em charlist |
[!charlist] |
Qualquer caractere único que não esteja em charlist |
Listas de caracteres
Um grupo de um ou mais caracteres (charlist) entre colchetes ([ ]) pode ser usado para corresponder a qualquer caractere string único e pode incluir quase qualquer código de caractere, incluindo dígitos.
Um ponto de exclamação (!) no início significa charlist que uma correspondência será feita se qualquer caractere, exceto os caracteres em charlist .string Quando usado entre colchetes externos, o ponto de exclamação corresponde a si mesmo.
Caracteres Especiais
Para corresponder ao colchete esquerdo de caracteres especiais ([), ponto de interrogação (?), sinal de número (#) e asterisco (*), coloque-os entre colchetes. O colchete direito (]) não pode ser usado dentro de um grupo para corresponder a si mesmo, mas pode ser usado fora de um grupo como um caractere individual.
A sequência [] de caracteres é considerada uma cadeia de caracteres de comprimento zero (""). No entanto, ele não pode fazer parte de uma lista de caracteres entre colchetes. Se você quiser verificar se uma posição string contém um de um grupo de caracteres ou nenhum caractere, você pode usar Like duas vezes. Para obter um exemplo, consulte Como fazer a correspondência de uma cadeia de caracteres com um padrão.
Intervalos de caracteres
Usando um hífen (–) para separar os limites inferior e superior do intervalo, charlist pode especificar um intervalo de caracteres. Por exemplo, [A–Z] resultará em uma correspondência se a posição string de caractere correspondente contiver qualquer caractere dentro do intervalo A–Z e [!H–L] resultará em uma correspondência se a posição de caractere correspondente contiver qualquer caractere fora do intervalo H–L .
Quando você especifica um intervalo de caracteres, eles devem aparecer em ordem de classificação crescente, ou seja, do mais baixo para o mais alto. Portanto, [A–Z] é um padrão válido, mas [Z–A] não é.
Vários intervalos de caracteres
Para especificar vários intervalos para a mesma posição de caractere, coloque-os dentro dos mesmos colchetes sem delimitadores. Por exemplo, [A–CX–Z] resultará em uma correspondência se a posição de caractere correspondente contiver string qualquer caractere dentro do intervalo A–C ou do intervalo X–Z .
Uso do hífen
Um hífen (–) pode aparecer no início (após um ponto de exclamação, se houver) ou no final para charlist corresponder a si mesmo. Em qualquer outro local, o hífen identifica um intervalo de caracteres delimitados pelos caracteres em ambos os lados do hífen.
Sequência de ordenação
O significado de um intervalo especificado depende da ordenação de caracteres em tempo de execução, conforme determinado e Option Compare da configuração de localidade do sistema em que o código está sendo executado. ComOption Compare Binary, o intervalo [A–E] correspondeA, B, Ce DE. Com Option Compare Text, [A–E] correspondênciasA, a, À, , à, B, b, C, , c, D, , d, e Ee. O intervalo não corresponde Ê ou ê porque caracteres acentuados agrupam após caracteres não centralizados na ordem de classificação.
Caracteres de dicógrafo
Em algumas linguagens, há caracteres alfabéticos que representam dois caracteres separados. Por exemplo, vários idiomas usam o caractere æ para representar os caracteres a e e quando eles aparecem juntos. O Like operador reconhece que o caractere de dicógrafo único e os dois caracteres individuais são equivalentes.
Quando uma linguagem que usa um caractere de dicógrafo é especificada nas configurações de localidade do sistema, uma ocorrência do caractere de dicógrafo único em ou patternstring corresponde à sequência equivalente de dois caracteres na outra cadeia de caracteres. Da mesma forma, um caractere de dicografia entre pattern colchetes (por si só, em uma lista ou em um intervalo) corresponde à sequência equivalente de dois caracteres em string.
Sobrecarga
O Like operador pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo dessa classe ou estrutura. Se o código usar esse operador em tal classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, consulte Procedimentos de Operador.
Exemplo
Este exemplo usa o Like operador para comparar cadeias de caracteres com vários padrões. Os resultados entram em uma Boolean variável que indica se cada cadeia de caracteres satisfaz o padrão.
Dim testCheck As Boolean
' The following statement returns True (does "F" satisfy "F"?)
testCheck = "F" Like "F"
' The following statement returns False for Option Compare Binary
' and True for Option Compare Text (does "F" satisfy "f"?)
testCheck = "F" Like "f"
' The following statement returns False (does "F" satisfy "FFF"?)
testCheck = "F" Like "FFF"
' The following statement returns True (does "aBBBa" have an "a" at the
' beginning, an "a" at the end, and any number of characters in
' between?)
testCheck = "aBBBa" Like "a*a"
' The following statement returns True (does "F" occur in the set of
' characters from "A" through "Z"?)
testCheck = "F" Like "[A-Z]"
' The following statement returns False (does "F" NOT occur in the
' set of characters from "A" through "Z"?)
testCheck = "F" Like "[!A-Z]"
' The following statement returns True (does "a2a" begin and end with
' an "a" and have any single-digit number in between?)
testCheck = "a2a" Like "a#a"
' The following statement returns True (does "aM5b" begin with an "a",
' followed by any character from the set "L" through "P", followed
' by any single-digit number, and end with any character NOT in
' the character set "c" through "e"?)
testCheck = "aM5b" Like "a[L-P]#[!c-e]"
' The following statement returns True (does "BAT123khg" begin with a
' "B", followed by any single character, followed by a "T", and end
' with zero or more characters of any type?)
testCheck = "BAT123khg" Like "B?T*"
' The following statement returns False (does "CAT123khg"?) begin with
' a "B", followed by any single character, followed by a "T", and
' end with zero or more characters of any type?)
testCheck = "CAT123khg" Like "B?T*"