Vastus: Katsetus 1
Regulaaravaldis: '[A-Z0-9]+'
Kuidas kontrollida seda regulaaravaldist PostgreSQLis?
SELECT 'EST?12'~'[A-Z0-9]+' AS tulemus;
ja
SELECT 'est12'~'[A-Z0-9]+' AS tulemus;
annavad mõlemad tulemuseks TRUE, sest kontrollitakse, et stringis sisalduks vähemalt üks märk (seda näitab +), mis kuulub märkide klassi [A-Z0-9].
Seega see regulaaravaldis seda ülesannet ei lahenda.
Katsetus 2
Regulaaravaldis: '^[A-Z0-9]+$'
^ tähendab stringi algust
$ tähendab stringi lõppu
Stringi alguse ja lõpu vahel tohivad olla vaid märkide klassi kuuluvad märgid.
Kuidas kontrollida seda regulaaravaldist PostgreSQLis?
SELECT 'EST?12'~'^[A-Z0-9]+$' AS tulemus;
ja
SELECT 'est12'~'^[A-Z0-9]+$' AS tulemus;
annavad mõlemad tulemuseks FALSE.
SELECT 'EST12'~'^[A-Z0-9]+$' AS tulemus;
ja
SELECT 'est12'~*'^[A-Z0-9]+$' AS tulemus;
annavad mõlemad tulemuseks TRUE.
SELECT 'est12'~*'^[A-Z0-9]+$' AS tulemus;
tulemuseks on TRUE, sest ~* operaator teostab tõstutundetut vastavuse kontrolli.