środa, 10 lipca 2013

Testowanie zgodności ciągów tekstowych- podstawy- 2/2

Kontynuując tematykę pracy z tekstem i szukania odpowiedzi na pytanie 'czy tekst B spełnia określone kryteria zgodności z tekstem A?' zaprezentuje technikę opartą o wykorzystanie operatora Like.

Ogólna konstrukcja wykorzystania operatora opiera się o schemat:

tekst_A Like wzorzec_B

gdzie w strukturze wzorca dostępne są następujące znaki i bloki specjalne
*        dowolny ciąg tekstu lub ciąg pusty
?        pojedynczy znak- litera lub cyfra
#        pojedyncza cyfra 0 do 9
[zakres]    wskazany zakres znaków, liter, cyfr
[!zakres]   wskazany zakres znaków, liter, cyfr nie uwzględniany w wyszukiwaniu

Spójrzmy jednak na przykłady w celu zrozumienia zastosowania operatora Like.Tym razem naszym badanym tekstem będzie następujący ciąg:
A = "Lorem ipsum dolor 100 sit amet, consectetuer adipiscing elit."

1. Czy w tekście A znajduje się określony fragment tekstu?

Proszę pamiętać, że domyślne porównanie tekstowe odbywa się w sposób binarny, a więc taki, który rozróżnia wielkość liter. Jednym ze sposobów obejścia tego problemu jest zastosowanie następującej techniki:

2. Czy tekst A zaczyna się od małej litery?

3. A może tekst zaczyna się od dowolnej litery (nie cyfry, nie znaku specjalnego)?

Uwaga, nie możemy zapisać zapytania jako "[A-z]" gdy pomiędzy literami A-Z i a-z znajduje się zestaw znaków specjalnych. Można to sprawdzić w następujący sposób (wraz z listą zwracanych wartości):

Jak więc widać powyżej zakresy znaków ujęte w kwadratowych nawiasach [] odpowiadają znakom w kolejności zgodnej z numeracją ANSI.

4. Czy tekst kończy się na literę lub liczbę?

5. A może tekst kończy się wybranym znakiem specjalnym?

6. Sprawdźmy czy tekst zawiera liczbę trzy- lub cztero-cyfrową?

7. Weryfikacja czy tekst jest zdaniem wymaga sprawdzenia, czy zaczyna się od litery wielkiej i kończy jednym ze znaków specjalnych?

8. A na koniec kilka drobnych przykładów, które zwracają wartość TRUE dla analizowanego ciągu tekstowego:

Wszystkich zainteresowanych szerzej zagadnieniem zastosowania opeartora Like odsyłam bezpośrednio do pomocy VBA na stronach Microsoft MSDN:
Like Operator
Comparing Strings by Using Comparison Operators


Brak komentarzy:

Prześlij komentarz