W MySQL RLIKE
operator służy do określenia, czy ciąg pasuje do wyrażenia regularnego. To synonim wyrażenia REGEXP_LIKE()
.
Jeśli ciąg pasuje do podanego wyrażenia regularnego, wynikiem jest 1
, w przeciwnym razie jest to 0
.
Składnia
Składnia wygląda tak:
expr RLIKE pat
Gdzie expr
jest ciągiem wejściowym i pat
jest wyrażeniem regularnym, względem którego testujesz ciąg.
Przykład
Oto przykład użycia tego operatora w SELECT
oświadczenie:
SELECT 'Tweet' REGEXP '^Tw.*t$';
Wynik:
+--------------------------+ | 'Tweet' REGEXP '^Tw.*t$' | +--------------------------+ | 1 | +--------------------------+
W tym przypadku zwracana wartość to 1
co oznacza, że ciąg wejściowy pasuje do wyrażenia regularnego. W szczególności określiliśmy, że ciąg wejściowy powinien zaczynać się od Tw i zakończ t (to dlatego, że rozpoczęliśmy wzorzec od ^Tw
i zakończył z t$
). .
part określa dowolny znak, a *
określa, że może to być zero do dowolnej liczby tego (dowolnego) znaku. Więc .*
oznacza, że między początkiem a końcem nie może być żadnych znaków, jednego znaku ani wielu znaków.
Oto, co się stanie, jeśli opuścimy *
:
SELECT 'Tweet' REGEXP '^Tw.t$';
Wynik:
+-------------------------+ | 'Tweet' REGEXP '^Tw.t$' | +-------------------------+ | 0 | +-------------------------+
Zwracany wynik to 0
co oznacza brak dopasowania. Dzieje się tak, ponieważ .
określa tylko jedno wystąpienie dowolnego znaku. Nasz ciąg wejściowy zawiera dwie instancje.
Oto kilka permutacji:
SELECT 'Twet' REGEXP '^Tw.t$' AS 'Twet', 'Twit' REGEXP '^Tw.t$' AS 'Twit', 'Twt' REGEXP '^Tw.t$' AS 'Twt', 'Tw.t' REGEXP '^Tw.t$' AS 'Tw.t';
Wynik:
+------+------+-----+------+ | Twet | Twit | Twt | Tw.t | +------+------+-----+------+ | 1 | 1 | 0 | 1 | +------+------+-----+------+
Więcej przykładów
Aby uzyskać więcej przykładów, zobacz Przykłady MySQL REGEXP. Jak RLIKE
, REGEXP
operator jest również synonimem REGEXP_LIKE()
.