Operador Like (Visual Basic)
Compara uma sequência de caracteres com um padrão.
result = string Like pattern
Partes
result
Obrigatório.Qualquer variável Boolean.O resultado é um valor Boolean indicando se string satisfaz ou não pattern.string
Obrigatório.Qualquer expressão String.pattern
Obrigatório.Qualquer expressão String de acordo com as convenções de coincidência de padrão descritas em "Comentários".
Comentários
Se o valor string satisfizer o padrão contido em pattern, resultTrue.Se a sequência de caracteres não satisfizer o padrão, result será False.Se ambos string e pattern forem sequências de caracteres vazias, o resultado será True.
Método de Comparação
O comportamento do operador Like depende de Opção Comparar Declarações.O método de comparação de sequência de caracteres padrão para cada arquivo de origem é Option Compare Binary.
Opções Padrão
Correspondência de padrões interna fornece uma ferramenta versátil para comparações de sequência de caracteres.Os recursos de coincidência de padrão permitem que você coincida cada caractere em string com um caractere específico, um caractere curinga, uma lista de caracteres ou um intervalo de caracteres.A tabela a seguir mostra os caracteres permitidos em pattern e o que eles correspondem.
Caracteres em pattern |
Correspondências em string |
---|---|
? |
Qualquer caractere único |
* |
Zero ou mais caracteres |
# |
Qualquer dígito único (0–9) |
[charlist] |
Qualquer caractere único no 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 coincidir qualquer caractere único em string e pode incluir quase todos os código de caractere, inclusive dígitos.
Um ponto de exclamação (!) no início de charlist significa que uma coincidência é feita se qualquer caractere, exceto os caracteres em charlist for encontrado em string.Quando usado fora de colchetes, o ponto de exclamação corresponde a si mesmo.
Caracteres Especiais
Para coincidir com os caracteres especiais à esquerda do colchete ([), ponto de interrogação (?), sinal numérico (#), e asterisco (*), coloque-os entre colchetes.O colchete direito (]) não pode ser usado dentro de um grupo para corresponder em si, mas ele pode ser usado fora de um grupo como um caractere individual.
A sequência de caracteres [] é considerada uma sequencia de caracteres de comprimento zero ("").No entanto, ele não pode ser parte de uma lista de caracteres entre colchetes.Se você quiser verificar se uma posição na string contém um de um grupo de caracteres ou nenhum caractere, você pode usar Like duas vezes.Para um exemplo, consulte Como: Corresponde a uma string em relação a um padrão.
Intervalos de Caracteres
By using a hyphen (–) to separate the lower and upper bounds of the range, charlist can specify a range of characters.For example, [A–Z] results in a match if the corresponding character position in string contains any character within the range A–Z, and [!H–L] results in a match if the corresponding character position contains any character outside the range H–L.
Quando você especifica um intervalo de caracteres, eles devem aparecer em ordem de classificação crescente, ou seja, do menor para o maior.Thus, [A–Z] is a valid pattern, but [Z–A] is not.
Vários Intervalos de Caracteres
Para especificar vários intervalos para a mesma posição de caractere, coloque-os entre os mesmos colchetes sem delimitadores.For example, [A–CX–Z] results in a match if the corresponding character position in string contains any character within either the range A–C or the range X–Z.
Uso do Hífen
A hyphen (–) can appear either at the beginning (after an exclamation point, if any) or at the end of charlist to match itself.Em qualquer outro local, o hífen identifica um intervalo de caracteres delimitado por caracteres em ambos os lados do hífen.
Sequência de Agrupamento
O significado de um intervalo especificado depende do caractere de ordenação em tempo de execução, conforme determinado pela OptionCompare e da configuração local do sistema na qual o código está sendo executado.With OptionCompareBinary, the range [A–E] matches A, B, C, D, and E.With OptionCompareText, [A–E] matches A, a, À, à, B, b, C, c, D, d, E, and e.O intervalo não coincide com Ê ou ê porque caracteres acentuados agupam após caracteres não acentuados na ordem de classificação.
Caracteres Dígrafo
Em alguns idiomas, há caracteres alfabéticos que representam dois caracteres distintos.Por exemplo, vários idiomas usam o caractere æ para representar os caracteres a e e quando aparecem juntos.O operador Like reconhece que o caractere dígrafo único e os dois caracteres individuais são equivalentes.
Quando um idioma que usa um caractere dígrafo for especificado nas configurações de localidade do sistema, uma ocorrência do caractere dígrafo única em pattern ou string coincide com a sequência de dois caracteres equivalente na outra sequência de caracteres.Da mesma forma, um caractere dígrafo em pattern entre colchetes (por si só, em uma lista, ou em um intervalo) coincide com a sequência de dois caracteres string.
Sobrecarga
O operador Like pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo daquela classe ou estrutura.Se seu código usa esse operador em tal classe ou estrutura, esteja certo que entende seu comportamento redefinido.Para obter mais informações, consulte Procedimentos de Operador.
Exemplo
Este exemplo usa o operador Like para comparar sequências de caracteres para vários padrões.Os resultados entram em uma variável Boolean que indica se cada sequência 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*"
Consulte também
Tarefas
Como: Corresponde a uma string em relação a um padrão
Conceitos
Operadores e expressões em Visual Basic
Referência
Operadores de comparação (Visual Basic)
Precedência de operadores no Visual Basic