Hoe pas MySQL-databasis gereelde uitdrukkings ooreen? MySQL regexp soos gebruik

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.

afbeskrywing
^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|p3Pas 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!

🔔 Wees die eerste om die waardevolle "ChatGPT Content Marketing AI Tool Usage Guide" in die kanaal se topgids 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!

 

发表 评论

U e-posadres sal nie gepubliseer word nie. Vereiste velde word gebruik * Etiket

blaai na bo