Artikelgids
MySQL databasisHoe pas die gereelde uitdrukking by?MySQL regexp soos gebruik
MySQL gereelde uitdrukkings
In die vorige hoofstukke het ons geleer dat MySQL kan wees LIKE...% vir fuzzy passing.
MySQL ondersteun ook die passing van ander gereelde uitdrukkings.Die REGEXP-operateur word in MySQL vir gewone uitdrukking-passing gebruik.
As jy PHP of Perl ken, is dit redelik eenvoudig, aangesien MySQL se gereelde uitdrukking-passing soortgelyk is aan dié van hierdie skrifte.
Die gereelde patrone in die volgende tabel kan op die REGEXP-operateur toegepas word.
af | beskrywing |
---|---|
^ | Pas by die begin van die invoerstring.^ pas ook by die posisie na '\n' of '\r' as die Multiline-eienskap van die RegExp-objek gestel is. |
$ | Pas by die einde van die invoerstring.As die Multiline-eienskap van die RegExp-objek gestel is, pas $ ook by die posisie voor '\n' of '\r'. |
. | Pas by enige enkele karakter behalwe "\n".Om enige karakter te pas, insluitend '\n', gebruik 'n patroon soos '[.\n]'. |
[...] | versameling karakters.Pas by enige een van die vervatte karakters.Byvoorbeeld, '[abc]' sal ooreenstem met "plai'a' in n". |
[^...] | Negatiewe karakterstel.Pas by enige karakter wat nie vervat is nie.Byvoorbeeld, '[^abc]' sal ooreenstem met 'p' in "plain". |
p1|p2|p3 | Pas by p1 of p2 of p3.Byvoorbeeld, 'z|kos' sal óf "z" óf "kos" pas. '(z|f)ood' pas by "zood" of "kos". |
* | Pas die voorafgaande subuitdrukking nul of meer keer.Byvoorbeeld, zo* sal ooreenstem met "z" sowel as "dieretuin". * is gelykstaande aan {0,}. |
+ | Pas een of meer keer by die voorafgaande subuitdrukking.Byvoorbeeld, 'zo+' sal ooreenstem met "zo" en "dieretuin", maar nie "z" nie. + is gelykstaande aan {1,}. |
{n} | n is 'n nie-negatiewe heelgetal.Pas presies n keer.Byvoorbeeld, 'o{2}' sal nie ooreenstem met die 'o' in "Bob" nie, maar sal ooreenstem met beide o's in "kos". |
{n,m} | Beide m en n is nie-negatiewe heelgetalle, waar n <= m.Pas ten minste n keer en hoogstens m keer ooreen. |
Instansie
Nadat ons die bogenoemde gereelde vereistes verstaan het, kan ons SQL-stellings met gereelde uitdrukkings skryf volgens ons eie vereistes.Hieronder sal ons 'n paar klein voorbeelde lys (tabelnaam: person_tbl ) om ons begrip te verdiep:
Vind alle data wat met 'st' in die naamveld begin:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Vind alle data wat eindig met 'ok' in die naamveld:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Vind alle data wat die 'mar'-string in die naamveld bevat:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Vind alle data in die naamveld wat met 'n vokaalkarakter begin of met die string 'ok' eindig:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeel "Hoe om gereelde uitdrukkings in MySQL-databasis te pas? MySQL regexp soos gebruik" sal jou help.
Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-492.html
Welkom by die Telegram-kanaal van Chen Weiliang se blog om die nuutste opdaterings te kry!
📚 Hierdie gids bevat groot waarde, 🌟Dit is 'n seldsame geleentheid, moet dit nie misloop nie! ⏰⌛💨
Share en like as jy wil!
Jou deel en laaiks is ons voortdurende motivering!