В MySQL, RLIKE
Операторът се използва за определяне дали низ съответства на регулярен израз или не. Това е синоним на REGEXP_LIKE()
.
Ако низът съвпада с предоставения регулярен израз, резултатът е 1
, в противен случай е 0
.
Синтаксис
Синтаксисът е така:
expr RLIKE pat
Където expr
е входният низ и pat
е регулярният израз, срещу който тествате низа.
Пример
Ето пример за това как да използвате този оператор в SELECT
изявление:
SELECT 'Tweet' REGEXP '^Tw.*t$';
Резултат:
+--------------------------+ | 'Tweet' REGEXP '^Tw.*t$' | +--------------------------+ | 1 | +--------------------------+
В този случай връщаната стойност е 1
което означава, че входният низ съответства на регулярния израз. По-специално, ние уточнихме, че входният низ трябва да започва с Tw и завършва с t (това е, защото започнахме шаблона с ^Tw
и го завърши с t$
). .
част посочва произволен знак и *
указва, че може да бъде нула до произволен брой от този (който и да е) знак. Така че .*
означава, че между началото и края не може да има нито един знак, нито много знаци.
Ето какво се случва, ако пуснем *
:
SELECT 'Tweet' REGEXP '^Tw.t$';
Резултат:
+-------------------------+ | 'Tweet' REGEXP '^Tw.t$' | +-------------------------+ | 0 | +-------------------------+
Връщаният резултат е 0
което означава, че няма съвпадение. Това е така, защото .
определя само един екземпляр на всеки знак. Нашият входен низ съдържа два екземпляра.
Ето някои пермутации:
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';
Резултат:
+------+------+-----+------+ | Twet | Twit | Twt | Tw.t | +------+------+-----+------+ | 1 | 1 | 0 | 1 | +------+------+-----+------+
Още примери
За повече примери вижте MySQL REGEXP Примери. Като RLIKE
, REGEXP
операторът също е синоним на REGEXP_LIKE()
.