Article Directory
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žim | opis |
|---|---|
| ^ | 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|p3 | Odgovara 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$';
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "Kako uskladiti regularne izraze MySQL baze podataka? MySQL regexp like usage" će vam pomoći.
Dobrodošli da podijelite link ovog članka:https://www.chenweiliang.com/cwl-492.html
