W tym artykule jest opisany krok po kroku sposób tworzenia wyrażeń regularnych i wykorzystywania ich w celu ustalenia, czy ciągi pasują do określonych wzorców. Za pomocą wyrażeń regularnych można przeprowadzić prostą analizę ciągów i dopasować je do określonego wzorca. Przy użyciu obiektów dostępnych w bibliotece wyrażeń regularnych Microsoft VBScript Regular Expressions 5.5 można porównać ciąg z określonym wzorcem, zastąpić wzorzec ciągu innym ciągiem lub pobrać tylko niektóre części sformatowanego ciągu. W tym artykule omówiono sposób konstruowania wzorca umożliwiającego analizę ciągu zawierającego wiele wystąpień tego samego wzorca.
Wymagania
Poniżej przedstawiono listę wymaganych elementów, takich jak sprzęt, oprogramowanie, infrastruktura sieci i dodatki Service Pack:
- Program Microsoft Visual Basic 6.0
W artykule założono, że czytelnik zna następujące zagadnienia:
- Program Visual Basic 6.0
- Składnia wyrażenia regularnego
Dopasowywanie wzorca przy użyciu wyrażeń regularnych
W programie Visual Basic 6.0 obiekt
RegExp dopasowuje wzorzec za pomocą wyrażeń regularnych. Poniżej podano właściwości obiektu
RegExp. Stanowią one wzorzec umożliwiający porównywanie ciągów przekazywanych do wystąpienia obiektu
RegExp:
- Pattern: Ciąg definiujący wyrażenie regularne.
- IgnoreCase: Właściwość logiczna określająca, czy należy przetestować wyrażenie regularne przez jego zestawienie ze wszystkimi możliwymi kombinacjami w ciągu.
- Global: Ustawia wartość logiczną lub zwraca wartość logiczną wskazującą, czy wzorzec musi być zgodny ze wszystkimi wystąpieniami w całym przeszukiwanym ciągu, czy tylko z pierwszym wystąpieniem.
- RegExp: Udostępnia następujące metody umożliwiające określenie, czy ciąg jest zgodny z konkretnym wzorcem wyrażenia regularnego:
- Test: Zwraca wartość logiczną wskazującą, czy można dopasować wyrażenie regularne do ciągu.
- Execute: Zwraca obiekt MatchCollection zawierający obiekt Match dla każdej zakończonej pomyślnie operacji dopasowania.
Aby dopasować ciąg do wyrażenia regularnego, wykonaj następujące kroki:
- Ustaw wyrażenie regularne przy użyciu metody Pattern obiektu RegExp.
- Uzyskaj ciąg, aby zbadać go za pomocą wzorca.
- Ustaw właściwość IgnoreCase obiektu RegExp na wartość True.
- Przekaż ciąg uzyskany w kroku 2 jako argument do metody Execute obiektu RegExp.
- Przypisz zwróconą wartość metody Execute do obiektu MatchCollection.
W obiekcie MatchCollection znajdują się informacje o dopasowanych ciągach.
Uwaga: Aby ustalić, czy ciąg pasuje do określonego wyrażenia regularnego, można również użyć metody
Test.
Przykład krok po kroku
- Uruchom program Microsoft Visual Basic 6.0.
- W menu File kliknij polecenie New Project.
- W oknie dialogowym New Project kliknij pozycję Standard Exe, a następnie kliknij przycisk OK.
Domyślnie zostanie utworzony formularz Form1. - W menu Project kliknij polecenie References.
- Kliknij dwukrotnie pozycję Microsoft VBScript Regular Expressions 5.5, a następnie kliknij przycisk OK.
- Kliknij dwukrotnie przycisk CommandButton w przyborniku.
Domyślnie do formularza zostanie dodany przycisk Command1. - Kliknij dwukrotnie przycisk Command1, aby otworzyć okno kodu.
- Wklej następujący kod w procedurze obsługi zdarzeń Command1_Click:
MsgBox(TestRegExp("is.", "IS1 is2 IS3 is4")) Uwaga: W tym przykładzie wzorzec is. jest porównywany z ciągiem „IS1 is2 IS3 is4”. Można użyć kropki (.) jako symbolu wieloznacznego, aby dopasować jeden dodatkowy znak i wyświetlić go we wzorcu wyszukiwania. Po dodaniu dwóch kropek do wzorca wyszukiwania zostaną wyświetlone dwa dodatkowe znaki. Jeśli nie zostaną dodane żadne kropki, wyświetlony zostanie tylko wzorzec wyszukiwania. - Dodaj następującą funkcję za procedurą obsługi zdarzeń Command1_click:
Function TestRegExp(myPattern As String, myString As String)
' Utwórz obiekty.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String
' Utwórz obiekt wyrażenia regularnego.
Set objRegExp = New RegExp
'Ustaw wzorzec przy użyciu właściwości Pattern.
objRegExp.Pattern = myPattern
' Ustaw ignorowanie wielkości liter.
objRegExp.IgnoreCase = True
'Ustaw właściwość Global.
objRegExp.Global = True
'Sprawdź, czy ciąg można porównać.
If (objRegExp.Test(myString) = True) Then
'Pobierz dopasowania.
Set colMatches = objRegExp.Execute(myString) ' Rozpocznij wyszukiwanie.
For Each objMatch In colMatches ' Powtórz kolekcję dopasowań.
RetStr = RetStr & "Znaleziono dopasowanie na pozycji "
RetStr = RetStr & objMatch.FirstIndex & ". Wartość dopasowania to '"
RetStr = RetStr & objMatch.Value & "'." & vbCrLf
Next
Else
RetStr = "Dopasowanie ciągu nie powiodło się"
End If
TestRegExp = RetStr
End Function - W menu Run kliknij polecenie Start, aby uruchomić aplikację.
- Kliknij przycisk Command1.
Zostanie wyświetlone pole komunikatu, w którym zostaną zwrócone wszystkie wystąpienia wyrażenia is w ciągu IS1 is2 IS3 is4.
Aby uzyskać więcej informacji, odwiedź następujące witryny MSDN w sieci Web:
Numer ID artykułu: 818802 - Ostatnia weryfikacja: 12 lipca 2006 - Weryfikacja: 3.0
Informacje zawarte w tym artykule dotyczą:
- Microsoft Visual Basic 6.0 Enterprise Edition
- Microsoft Visual Basic 6.0 Learning Edition
- Microsoft Visual Basic 6.0 Professional Edition
| kbprogramming kbstring kbhowtomaster KB818802 |