W tym samouczku omówimy użycie funkcji RegexP_OKS (). Ta funkcja pozwala nam wykonać dopasowanie wzorca wyrażenia regularnego na danym zestawie wartości.
Funkcja Oracle Regexp_
Funkcja podobna do RegexP_ jest podobna do podobnego operatora warunkowego. Jednak w przeciwieństwie do operatora podobnego, ta funkcja wykonuje dopasowanie wzorca regularnego zamiast dopasowywania pojedynczego wzoru.
To sprawia, że jest bardziej zaawansowany i niezawodny w porównaniu z podobnym operatorem. Wynika to z faktu, że wyrażenie regularne pozwala nam określić bardziej precyzyjny i konfigurowalny wzór. Może to szybko pomóc zawęzić wyniki wyszukiwania w danym zestawie.
Składnia funkcji jest zgodna z opisem poniżej:
Regexp_ podobny (źródło_string, Search_Pattern, [Match_parameter]);Funkcja akceptuje argumenty, jak pokazano poniżej:
Poniżej znajdują się zaakceptowana składnia i kombinacje wyrażenia regularnego:
Operator | Opis |
^ | Odpowiada początkowi ciągu zdefiniowanego w parametrze meczowym. |
$ | Oznacza koniec łańcucha zdefiniowanego w parametrze Match_parameter. |
* | Dopasuj zero lub więcej zdarzeń |
+ | Dopasuj jedną lub więcej wydarzeń |
? | Dopasuj zero lub jedno zdarzenie |
^b | Pasuje do postaci początkowych |
$ b | Pasuje do postaci na koniec linii. |
. C | Dopasuj dowolny znak w obsługiwanym zestawie znaków, z wyjątkiem null |
[]D | Określa listę elementów i chce dopasować co najmniej jeden element na liście |
() | Umożliwia traktowanie wzoru jako pojedynczej podekspresji. |
M | Pasuje dokładnie. |
M, | Pasuje co najmniej m. |
m, n | Pasuje co najmniej m, ale nie więcej niż n razy. |
\Nmi | Ekspresja wsteczna (gdzie n jest liczbą całkowitą między 1 a 9) pasuje do n -tym subekspresji. |
[… ]F | Określa element kolacji |
[::]G | Określa klasy postaci |
[==] H | Określa równoważne klasy. |
Aby dowiedzieć się więcej o wielojęzycznej składni i użyciu wyrażenia regularnego w bazach danych Oracle, rozważ link podany poniżej:
https: // dokumenty.wyrocznia.com/cd/b12037_01/serwer.101/B10759/AP_POSIX001.HTM#I690819
Poniżej pokazuje akceptowane wartości dla parametru Match_Parameter.
Jeśli nie zostanie dostarczony match_parameter, Oracle zakłada:
Gdy funkcja wykonuje pożądaną operację, powinien zwrócić wiersz pasujący do określonego wzoru.
Przykładowe użycie
Poniższa sekcja zawiera przykłady pokazujące wykorzystanie funkcji RegexP_ podobnej.
Załóżmy, że mamy tabelę zawierającą informacje o pracownikach, jak pokazano:
Przykład 1 - podstawowe użycie
Poniższy przykład pokazuje, jak korzystać z funkcji do wyszukiwania pasującej nazwy w tabeli pracowników.
WYBIERAĆW takim przypadku powyższe zapytanie powinno zwrócić wszystkie pasujące nazwy, w których nazwa pierwszego_.'
Przykładem jest to, jak pokazano:
Przykład 2 - Dopasuj początek linii
W poniższym przykładzie pokazujemy, jak używać match_parameter do przeszukania początku linii oznaczonej przez znak Careta.
WYBIERAĆWynikowy stół:
Przykład 3 - Dopasuj koniec linii
Podobnie możemy dopasować wzór na końcu linii za pomocą „i” jako wartości match_parameter i znaku dolara, aby oznaczyć koniec linii.
WYBIERAĆW takim przypadku powyższe zapytanie powinno zwrócić wartości pasujące, jak pokazano:
Zauważ, że wszystkie wartości kolumny Last_name kończą się.'
Przykład 4 - Wykonaj wyszukiwanie wrażliwe na obudowę
W poniższym przykładzie ustawiamy wartość parametru Match_Parameter na „C”, aby umożliwić dopasowanie wrażliwe na sprawę.
WYBIERAĆW powyższym przykładzie, ponieważ używamy czułości obudowy z małym wzorem wyszukiwania, zapytanie nie będzie zgodne z żadnymi wartości.
Przykład 5 - Wykonaj nieczułe wyszukiwanie przypadków
Aby obejść powyższy scenariusz, możemy wykonać dopasowanie wrażliwe na przypadki, ustawiając wartość parametru MATHED na „I”.
Przykład:
WYBIERAĆWyjście:
W takim przypadku możemy zobaczyć, jak zapytanie pasuje do dwóch wartości.
Przykład 6 - Dopasuj poprzedni znak kilka razy.
Włączamy również zapytanie do dopasowania konkretnego poprzedniego znaku zdefiniowaną liczbą razy. Przykładem jest jak pokazano:
Wybierz nazwę pierwszej nazwy, Last_nameW powyższym przykładzie wyszukiwamy wszystkie pasujące wiersze, w których wartość zawiera dwa znaki „e” w kolumnie Last_name.
Powstałe wartości są jak pokazane:
Jak widać, wszystkie wartości w kolumnie Last_name zawierają dwa znaki „e”.
Wniosek
W tym poście omówiliśmy, jak korzystać z funkcji RegexP_ podobnej w bazach danych Oracle, aby wyszukać wzór wyrażenia regularnego.