V MySQL NOT REGEXP
je negací REGEXP
operátor.
Jinými slovy, pokud řetězec odpovídá zadanému regulárnímu výrazu, výsledek je 0
, jinak je to 1
. Toto je opačný výsledek než REGEXP
by se vrátilo (pokud nemá předponu NOT
).
Syntaxe
Syntaxe vypadá takto:
expr NOT REGEXP pat
Kde expr
je vstupní řetězec a pat
je regulární výraz, pro který řetězec testujete.
Je to ekvivalent provedení následujícího:
NOT (expr REGEXP pat)
Příklad 1 – Základní použití
Zde je příklad, jak to použít v SELECT
prohlášení:
SELECT 'Bread' NOT REGEXP '^Br' AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | 0 | +--------+
Zde se vzor shoduje, pokud vstupní řetězec začíná Br
. Má, ale protože používáme NOT REGEXP
, dostaneme záporný výsledek (0
).
Výše uvedené prohlášení je ekvivalentem provedení tohoto:
SELECT NOT ('Bread' REGEXP '^Br') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | 0 | +--------+
Příklad 2 – ve srovnání s REGEXP
Aby bylo jasno, zde porovnáme výsledky z REGEXP
a NOT REGEXP
:
SELECT 'Bread' REGEXP '^Br' AS 'REGEXP', 'Bread' NOT REGEXP '^Br' AS 'NOT REGEXP';
Výsledek:
+--------+------------+ | REGEXP | NOT REGEXP | +--------+------------+ | 1 | 0 | +--------+------------+
Příklad 3 – Pozitivní výsledek
Předchozí příklady vedly k 0
pro NOT REGEXP
, protože řetězec udělal skutečně odpovídat vzoru. Zde je příklad, kdy dostaneme 1
, což znamená, že řetězec není zápas:
SELECT 'Sofa' REGEXP '^Br' AS 'REGEXP', 'Sofa' NOT REGEXP '^Br' AS 'NOT REGEXP';
Výsledek:
+--------+------------+ | REGEXP | NOT REGEXP | +--------+------------+ | 0 | 1 | +--------+------------+