Está gostando da leitura?
Está aprendendo?
Compre o livro novo que traz mais conteúdo, texto atualizado e ilustrações!
característica como fazer ------------------------------------------- busca método Test substituição método Replace divisão método Execute ER crua - ignore M/m propriedade IgnoreCase global propriedade Global
Demorou, mas em 1999 finalmente os usuários do Visual Basic®
Scripting Edition puderam experimentar o tão desejado recurso de
expressões regulares, implementado na versão 5.0 do Microsoft®
Scripting Engines. O nome do objeto que trata das expressões é
RegExp, e para o alívio dos programadores, a sintaxe e a
funcionalidade das ERs no VBScript são similares ao Perl, então não
precisa aprender uma linguagem nova.
Assim, se na sintaxe da ER não há novidade, podemos nos concentrar
em como utilizar esse objeto. Dentro dele os métodos que temos são
Test e Execute para busca e Replace
para substituições. Para ignorar maiúsculas e minúsculas e fazer
substituições globais, temos as duas propriedades booleanas
IgnoreCase e Global, que devem ser definidas como
true para entrarem em ação.
Como peculiaridade, a ER não pode ser passada diretamente ao
método, ela precisa primeiro ser definida na propriedade Pattern
. Vamos a um exemplo:
Dim er, texto
Set er = new regexp
texto = "visual"
er.Pattern = "^[A-Z]+$"
er.IgnoreCase = true
if er.Test(texto) then
msgbox ("casou!")
end if
Então instanciamos o objeto er e definimos um texto
qualquer a ser casado. Depois definimos a ER, uma linha toda de
maiúsculas, na propriedade Pattern e ligamos a opção de
"ignorância". Por fim, fazemos o Test da ER no texto. O
Replace funciona de maneira similar, sem surpresas.
O método Execute funciona como um split
ao contrário, em que você informa o padrão e não o separador. Ele
casa a ER no texto e retorna todos os pedaços de texto em que a ER
casou de maneira organizada, seguindo uma hierarquia. Ele retorna um
objeto "collection" chamado Matches que, por sua vez,
contém zero ou mais objetos Match. Cada um desses
Match contém um pedaço casado, que além do texto propriamente
dito, também tem a posição de início do casamento no texto original
e o tamanho desse trecho. Vamos ver um exemplo que separa os trechos
por espaços em branco, com um diagrama de brinde no cabeçalho:
' --- hierarquia do Execute e seus objetos ' ' Execute ' | ' Matches ---> Count, Item ' | ' Match ---> FirstIndex, Lenght, Value* ' ' * o Value é o padrão de acesso ' Dim er, texto er = new regexp texto = "um dois três" er.Pattern = "[^ ]+" z = er.Execute(texto) 'retorna 3 objetos Match for i = 0 to (z.Count - 1) 'para cada Match, msgbox z.Item(i) 'mostre o trecho casado next
Você pode ter mais informações e exemplos em: