I MariaDB, NOT REGEXP
operatorn är en negation av REGEXP
operatör.
Om strängen matchar det angivna reguljära uttrycket är resultatet 0
, annars är det 1
. Detta är det motsatta resultatet till REGEXP
skulle återkomma (när den inte har prefixet NOT
).
Syntax
Syntaxen ser ut så här:
expr NOT REGEXP pat
Där expr
är inmatningssträngen och pat
är det reguljära uttrycket som du testar strängen mot.
Det motsvarar att göra följande:
NOT (expr REGEXP pat)
Exempel
Här är ett exempel på hur du använder detta i en SELECT
uttalande:
SELECT 'Bread' NOT REGEXP '^Br';
Resultat:
+--------------------------+ | 'Bread' NOT REGEXP '^Br' | +--------------------------+ | 0 | +--------------------------+
Här matchas mönstret om inmatningssträngen börjar med Br
. Det gör det, men eftersom vi använder NOT REGEXP
, får vi ett negativt resultat (0
).
Ovanstående uttalande motsvarar att göra detta:
SELECT NOT ('Bread' REGEXP '^Br');
Resultat:
+----------------------------+ | NOT ('Bread' REGEXP '^Br') | +----------------------------+ | 0 | +----------------------------+
Jämfört med REGEXP
I det här exemplet jämför vi resultaten från REGEXP
och NOT REGEXP
:
SELECT
'Bread' REGEXP '^Br' AS "REGEXP",
'Bread' NOT REGEXP '^Br' AS "NOT REGEXP";
Resultat:
+--------+------------+ | REGEXP | NOT REGEXP | +--------+------------+ | 1 | 0 | +--------+------------+
Ett positivt resultat
De tidigare exemplen resulterade i 0
för NOT REGEXP
, eftersom strängen gjorde faktiskt matcha mönstret. Här är ett exempel där vi får en 1
, vilket indikerar att strängen inte gör det matcha:
SELECT
'Sofa' REGEXP '^Br' AS "REGEXP",
'Sofa' NOT REGEXP '^Br' AS "NOT REGEXP";
Resultat:
+--------+------------+ | REGEXP | NOT REGEXP | +--------+------------+ | 0 | 1 | +--------+------------+