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