Kako se poklapaju regularni izrazi MySQL baze podataka? Upotreba MySQL regularnog izraza

MySQL baza podatakaKako se regularni izraz podudara?MySQL upotreba poput regexpa

MySQL regularni izrazi

U prethodnim poglavljima smo naučili da MySQL može proći LIKE...% za fuzzy matching.

MySQL takođe podržava uparivanje drugih regularnih izraza.REGEXP operator se koristi u MySQL-u za podudaranje regularnih izraza.

Ako poznajete PHP ili Perl, prilično je jednostavno, pošto je podudaranje regularnog izraza u MySQL-u slično onima u ovim skriptama.

Uobičajeni obrasci u sljedećoj tabeli mogu se primijeniti na REGEXP operator.

Režimopis
^Odgovara početku ulaznog niza.^ također odgovara poziciji nakon '\n' ili '\r' ako je postavljeno svojstvo Višelinijskog RegExp objekta.
$Odgovara kraju ulaznog niza.Ako je višelinijsko svojstvo RegExp objekta postavljeno, $ također odgovara poziciji prije '\n' ili '\r'.
.Odgovara bilo kojem pojedinačnom znaku osim "\n".Za podudaranje sa bilo kojim znakom uključujući '\n', koristite obrazac poput '[.\n]'.
[...]zbirka likova.Odgovara bilo kojem od sadržanih znakova.Na primjer, '[abc]' bi odgovaralo "plai'a' u n".
[^…]Negativni skup znakova.Odgovara bilo kojem znaku koji nije sadržan.Na primjer, '[^abc]' bi odgovaralo 'p' u "običnom".
p1|p2|p3Odgovara p1 ili p2 ili p3.Na primjer, 'z|food' bi odgovaralo ili "z" ili "food". '(z|f)ood' odgovara "zood" ili "food".
*Poklapa se s prethodnim podizrazom nula ili više puta.Na primjer, zo* bi odgovarao "z" kao i "zoo". * je ekvivalentno {0,}.
+Poklapa se s prethodnim podizrazom jednom ili više puta.Na primjer, 'zo+' bi odgovaralo "zo" i "zoo", ali ne i "z". + je ekvivalentno {1,}.
{ne}n je nenegativan cijeli broj.Poklapa se tačno n puta.Na primjer, 'o{2}' ne bi odgovaralo 'o' u "Bob", ali bi odgovaralo oba o u "hrana".
{n,m}I m i n su nenegativni cijeli brojevi, gdje je n <= m.Poklapa se najmanje n puta i najviše m puta.

Instance

Nakon razumijevanja gornjih regularnih zahtjeva, možemo pisati SQL izraze s regularnim izrazima prema našim vlastitim zahtjevima.U nastavku ćemo navesti nekoliko malih primjera (ime tabele: person_tbl) kako bismo produbili naše razumijevanje:

Pronađite sve podatke koji počinju sa 'st' u polju za ime:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Pronađite sve podatke koji završavaju sa 'ok' u polju za ime:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Pronađite sve podatke koji sadrže niz 'mar' u polju za ime:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Pronađite sve podatke u polju imena koje počinje znakom samoglasnika ili se završava nizom 'ok':

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

Komentari

Vaša email adresa neće biti objavljena. Koriste se obavezna polja * Oznaka

Dođite na vrh