I MySQL, NOT REGEXP
är en negation av REGEXP
operatör.
Med andra ord, om strängen matchar det angivna reguljära uttrycket blir 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 1 – Grundläggande användning
Här är ett exempel på hur du använder detta i en SELECT
uttalande:
SELECT 'Bread' NOT REGEXP '^Br' AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 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') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 0 | +--------+
Exempel 2 – Jämfört med REGEXP
För att göra det tydligt jämför vi här 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 | +--------+------------+
Exempel 3 – 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 | +--------+------------+