Straipsnių katalogas
MySQL duomenų bazėKaip sutampa reguliarioji išraiška?MySQL RegEx kaip naudojimas
MySQL reguliarios išraiškos
Ankstesniuose skyriuose sužinojome, kad MySQL gali būti KAIP...% neaiškiam atitikimui.
„MySQL“ taip pat palaiko kitų reguliariųjų išraiškų atitikimą, REGEXP operatorius naudojamas MySQL reguliariųjų reiškinių atitikimui.
Jei žinote PHP arba Perl, tai gana paprasta, nes MySQL reguliariųjų reiškinių atitikimas yra panašus į šių scenarijų.
Įprasti šablonai šioje lentelėje gali būti taikomi REGEXP operatoriui.
Režimas | apibūdinimas |
---|---|
^ | Atitinka įvesties eilutės pradžią.^ taip pat atitinka poziciją po '\n' arba '\r', jei nustatyta RegExp objekto ypatybė Multiline. |
$ | Atitinka įvesties eilutės pabaigą.Jei nustatyta RegExp objekto ypatybė Multiline, $ taip pat atitinka poziciją prieš '\n' arba '\r'. |
. | Atitinka bet kurį vieną simbolį, išskyrus „\n“.Kad atitiktumėte bet kurį simbolį, įskaitant „\n“, naudokite šabloną, pvz., „[.\n]“. |
[...] | personažų kolekcija.Atitinka bet kurį iš pateiktų simbolių.Pavyzdžiui, „[abc]“ atitiktų „plai„a“ n. |
[^…] | Neigiamas simbolių rinkinys.Atitinka bet kurį simbolį, kurio nėra.Pavyzdžiui, „[^abc]“ atitiktų „p“ lauke „paprastas“. |
p1|p2|p3 | Atitinka p1 arba p2 arba p3.Pavyzdžiui, „z|maistas“ atitiktų „z“ arba „maistas“. „(z|f)ood“ atitinka „zood“ arba „maistas“. |
* | Nulį ar daugiau kartų atitinka ankstesnę posakį.Pavyzdžiui, zo* atitiktų „z“ ir „zoo“. * atitinka {0,}. |
+ | Atitinka ankstesnę posakį vieną ar daugiau kartų.Pavyzdžiui, „zo+“ atitiktų „zo“ ir „zoologijos sodą“, bet ne „z“. + atitinka {1,}. |
{ne} | n yra neneigiamas sveikasis skaičius.Sutampa lygiai n kartų.Pavyzdžiui, „o{2}“ neatitiktų „o“ „Bob“, bet atitiktų abu „maistas“ esančius o. |
{n,m} | Ir m, ir n yra neneigiami sveikieji skaičiai, kur n <= m.Atitinka mažiausiai n kartų ir daugiausia m kartų. |
pavyzdys
Supratę aukščiau pateiktus reguliarius reikalavimus, galime rašyti SQL sakinius su reguliariosiomis išraiškomis pagal savo reikalavimus.Žemiau pateiksime keletą nedidelių pavyzdžių (lentelės pavadinimas: person_tbl ), kad galėtume geriau suprasti:
Raskite visus duomenis, prasidedančius vardo lauke „st“:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Raskite visus duomenis, kurie vardo lauke baigiasi „ok“:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Raskite visus duomenis, kurių pavadinimo lauke yra eilutė „mar“:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Raskite visus duomenis vardo lauke, kuris prasideda balsiu arba baigiasi eilute „ok“:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang tinklaraštis ( https://www.chenweiliang.com/ ) pasidalino „Kaip suderinti MySQL duomenų bazės reguliariąsias išraiškas? MySQL regexp like usage“ jums padės.
Kviečiame pasidalinti šio straipsnio nuoroda:https://www.chenweiliang.com/cwl-492.html
Sveiki atvykę į Chen Weiliang tinklaraščio Telegram kanalą, kad gautumėte naujausius atnaujinimus!
📚 Šis vadovas turi didžiulę vertę, 🌟Tai reta galimybė, nepraleiskite jos! ⏰⌛💨
Dalinkitės ir like jei patiko!
Jūsų dalijimasis ir paspaudimai „Patinka“ yra mūsų nuolatinė motyvacija!