I MySQL, NOT REGEXP
er en negation af REGEXP
operatør.
Med andre ord, hvis strengen matcher det angivne regulære udtryk, er resultatet 0
, ellers er det 1
. Dette er det modsatte resultat af REGEXP
ville returnere (når det ikke er præfikset med NOT
).
Syntaks
Syntaksen ser sådan ud:
expr NOT REGEXP pat
Hvor expr
er inputstrengen og pat
er det regulære udtryk, som du tester strengen for.
Det svarer til at gøre følgende:
NOT (expr REGEXP pat)
Eksempel 1 – Grundlæggende brug
Her er et eksempel på, hvordan du bruger dette i en SELECT
erklæring:
SELECT 'Bread' NOT REGEXP '^Br' AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 0 | +--------+
Her matches mønsteret, hvis inputstrengen starter med Br
. Det gør det, men fordi vi bruger NOT REGEXP
, får vi et negativt resultat (0
).
Ovenstående udsagn svarer til at gøre dette:
SELECT NOT ('Bread' REGEXP '^Br') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 0 | +--------+
Eksempel 2 – Sammenlignet med REGEXP
For at gøre det klart, sammenligner vi her resultaterne fra REGEXP
og NOT REGEXP
:
SELECT 'Bread' REGEXP '^Br' AS 'REGEXP', 'Bread' NOT REGEXP '^Br' AS 'NOT REGEXP';
Resultat:
+--------+------------+ | REGEXP | NOT REGEXP | +--------+------------+ | 1 | 0 | +--------+------------+
Eksempel 3 – Et positivt resultat
De foregående eksempler resulterede i 0
for NOT REGEXP
, fordi strengen gjorde faktisk matche mønsteret. Her er et eksempel, hvor vi får en 1
, som angiver, at strengen ikke match:
SELECT 'Sofa' REGEXP '^Br' AS 'REGEXP', 'Sofa' NOT REGEXP '^Br' AS 'NOT REGEXP';
Resultat:
+--------+------------+ | REGEXP | NOT REGEXP | +--------+------------+ | 0 | 1 | +--------+------------+