środa, 17 lipca 2013

Testowanie zgodności ciągów tekstowych- wyrażenia regularne RegExp- 1/4

W trzech kolejnych postach poświęconych tematyce testowania zgodności ciągów tekstowych przedstawię technikę zwaną potocznie: 'wyrażenia regularne' (ang. regular expressions, powszechnie używane skróty to także RegExp czy RegEx). Wprawne oko czytającego mogło dostrzec, że ten i kolejny post w temacie pracy z tekstem zmieniły tag określający poziom zagadnienia. Temat ten należy bowiem zdecydowanie zaliczyć do zaawansowanych umiejętności programowania.

Zagadnienie związane z wyrażeniami regularnymi (od teraz zwanymi RegExp) jest tematem bardzo obszernym. Postaram się możliwie krótko i prosto przedstawić zagadnienie na tyle, aby móc na końcu zaprezentować praktyczne wykorzystanie. Wszystkich zainteresowanych odsyłam do linków, które zostaną podane pod koniec lub do własnych poszukiwań w Internecie.

Zanim przejdziemy do omówienia zagadnienia kroku po kroku krótka odpowiedź na pytanie 'do czego szczególnie przyda się umiejętność wykorzystania RegExp?':

A) cel podstawowy- weryfikacji, czy dany ciąg tekstu spełnia określone skomplikowane założenia co do składni, a więc nie tylko sprawdzenie, czy tekst zaczyna się, czy kończy lub czy zawiera określony inny tekst,
B) do wykonania operacji typu Find >> Replace dla skomplikowanych składni tekstowych
C) odnajdywania i zwracania wybranych składni tekstu, np. liczb z danego ciągu tekstowego, albo tego samego ciągu pozbawionego liczb,
D) wyszukiwania adresów e-mail czy adresów internetowych w zbiorze innych wartości tekstowych, itp.

Wykorzystanie techniki RegExp wymagać będzie od nas:
Krok 1) utworzenia referencji do zewnętrznej biblioteki- i o tym napiszę w niniejszym poście,
Krok 2) umiejętności tworzenia wzorców szukanego tekstu- chyba najważniejsza umiejętność w korzystaniu z RegExp, i o tym w kolejnym poście,
Krok 3) umiejętności wykorzystania metod, właściwości, obiektów i kolekcji RegExp lub z RegExp związanych.

Krok 1. 
Wykorzystanie RegExp wymaga od nas ustanowienia referencji do zewnętrznej biblioteki. W tym celu korzystając z jednej z technik wiązań naszą procedurę lub funkcję musimy wzbogacić o następujące alternatywne instrukcje:

wariant A) dla wiązana późnego:

wariant B) dla wiązania wczesnego w pierwszej kolejności musimy dodać referencję do biblioteki Microsoft VBScript Regular Expressions 5.5 (Edytor VBA >> Tools >> References >> odnajdujemy i zaznaczamy wskazaną bibliotekę >> OK). Sam kod będzie miał następującą postać:

Z którego wariantu warto skorzystać? Z praktycznego punktu widzenia- jeżeli tworzony kod nie będzie dystrybuowany zdecydowanie powinniśmy sięgnąć po wariant B, jeżeli jednak tworzymy rozwiązanie dla innych użytkowników powinniśmy zastosować wariant A.
(W sprawie dodatkowych informacji dot. wczesnego i późnego wiązania odsyłam do naszych kursów lub do informacji znajdujących się w sieci.)

Brak komentarzy:

Prześlij komentarz