Este artigo passo-a-passo descreve como criar e utilizar expressões regulares para determinar se as cadeias correspondem a padrões específicos. As expressões regulares permitem uma análise e correspondência simples de cadeias com um padrão específico. Se utilizar os objectos disponíveis na biblioteca Microsoft VBScript Regular Expressions 5.5, poderá comparar uma cadeia com um padrão específico, substituir um padrão de cadeia por outra cadeia ou obter apenas partes de uma cadeia formatada. Este artigo descreve como criar um padrão para analisar uma cadeia que contém várias instâncias do mesmo padrão.
Requisitos
A lista seguinte descreve o hardware, software, infra-estrutura de rede e Service Packs recomendados de que necessita:
- Microsoft Visual Basic 6.0
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
- Visual Basic 6.0
- Sintaxe de expressões regulares
Utilizar Expressões Regulares para Corresponder a um Padrão
No Visual Basic 6.0, o objecto
RegExp utiliza expressões regulares para corresponder a um padrão. As propriedades seguintes são fornecidas por
RegExp. Estas propriedades definem o padrão para comparar as cadeias passadas para a instância de
RegExp:
- Pattern: Uma cadeia que define a expressão regular.
- IgnoreCase: Uma propriedade booleana que indica se tem de testar a expressão regular contra todas as correspondências possíveis numa cadeia.
- Global: Define um valor booleano ou devolve um valor booleano que indica se um padrão tem de corresponder a todas as ocorrências de uma cadeia de procura completa ou se tem de corresponder apenas à primeira ocorrência.
O
RegExp fornece os métodos seguintes para determinar se uma cadeia corresponde a um padrão específico de uma expressão regular:
- Test: Devolve um valor booleano que indica se a expressão regular pode ser correspondida à cadeia com êxito.
- Execute: Devolve um objecto MatchCollection que contém um objecto Match para cada correspondência com êxito.
Para corresponder uma cadeia a uma expressão regular, siga estes passos:
- Defina a expressão regular utilizando o método Pattern do objecto RegExp.
- Obtenha a cadeia para examinar o padrão.
- Defina a propriedade IgnoreCase do objecto RegExp como True.
- Passe a cadeia obtida no passo 2 como um argumento para o método Execute do objecto RegExp.
- Atribua o valor devolvido pelo método Execute ao objecto MatchCollection.
O objecto MatchCollection contém informações sobre as cadeias correspondidas.
Nota Também pode utilizar o método
Test para determinar se a cadeia corresponde à expressão regular específica.
Exemplo Passo-a-passo
- Inicie o Microsoft Visual Basic 6.0.
- No menu File, clique em New Project.
- Clique em Standard Exe na caixa de diálogo New Project e, em seguida, clique em OK.
Por predefinição, é criado o Form1. - No menu Project, clique em References.
- Faça duplo clique em Microsoft VBScript Regular Expressions 5.5 e clique em OK.
- Na caixa de ferramentas, faça duplo clique em CommandButton.
Por predefinição, Command1 é adicionado ao formulário. - Faça duplo clique em Command1 para abrir a janela Code.
- Cole o código seguinte no processador de eventos Command1_Click:
MsgBox(TestRegExp("is.", "IS1 is2 IS3 is4")) Nota Neste exemplo, o padrãois. é verificado na cadeia "IS1 is2 IS3 is4". Pode utilizar o carácter especial ponto (.) como carácter universal, para que um carácter adicional seja correspondido e apresentado com o padrão de procura. Se adicionar dois pontos ao padrão de procura, verá dois caracteres adicionais. Se não utilizar nenhum ponto, só verá o padrão de procura. - Adicione a função seguinte após o processador de eventos Command1_click:
Function TestRegExp(myPattern As String, myString As String)
'Create objects.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String
' Create a regular expression object.
Set objRegExp = New RegExp
'Set the pattern by using the Pattern property.
objRegExp.Pattern = myPattern
' Set Case Insensitivity.
objRegExp.IgnoreCase = True
'Set global applicability.
objRegExp.Global = True
'Test whether the String can be compared.
If (objRegExp.Test(myString) = True) Then
'Get the matches.
Set colMatches = objRegExp.Execute(myString) ' Execute search.
For Each objMatch In colMatches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
RetStr = RetStr & objMatch.Value & "'." & vbCrLf
Next
Else
RetStr = "String Matching Failed"
End If
TestRegExp = RetStr
End Function - No menu Run, clique em Start para executar a aplicação.
- Clique em Command1.
É apresentada uma mensagem que devolve todas as ocorrências de is na cadeia IS1 is2 IS3 is4.
Para obter mais informações, visite os seguintes Web sites da MSDN:
Artigo: 818802 - Última revisão: sexta-feira, 28 de Dezembro de 2007 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
- Microsoft Visual Basic 6.0 Enterprise Edition
- Microsoft Visual Basic 6.0 Learning Edition
- Microsoft Visual Basic 6.0 Professional Edition
| kbhowtomaster kbprogramming kbstring KB818802 |