Artikkelkatalog
MySQL-databaseHvordan samsvarer det regulære uttrykket?MySQL regexp som bruk
MySQL regulære uttrykk
I de forrige kapitlene har vi lært at MySQL kan være det SOM...% for uklar matching.
MySQL støtter også matching av andre regulære uttrykk. REGEXP-operatoren brukes i MySQL for matching av regulære uttrykk.
Hvis du kjenner PHP eller Perl, er det ganske enkelt, siden MySQLs regulære uttrykksmatching ligner på disse skriptene.
De vanlige mønstrene i tabellen nedenfor kan brukes på REGEXP-operatøren.
| Mode | beskrivelse |
|---|---|
| ^ | Tilsvarer begynnelsen av inndatastrengen.^ samsvarer også med posisjonen etter '\n' eller '\r' hvis Multiline-egenskapen til RegExp-objektet er satt. |
| $ | Tilsvarer slutten av inndatastrengen.Hvis Multiline-egenskapen til RegExp-objektet er satt, samsvarer $ også med posisjonen før '\n' eller '\r'. |
| . | Matcher ethvert enkelt tegn unntatt "\n".For å matche et hvilket som helst tegn inkludert '\n', bruk et mønster som '[.\n]'. |
| [...] | samling av karakterer.Matcher en av de inneholdte tegnene.For eksempel vil '[abc]' samsvare med "plai'a' i n". |
| [^...] | Negativt tegnsett.Matcher alle tegn som ikke finnes.For eksempel vil '[^abc]' matche 'p' i "vanlig". |
| p1|p2|p3 | Matcher p1 eller p2 eller p3.For eksempel vil 'z|mat' samsvare med enten "z" eller "mat". '(z|f)ood' samsvarer med "zood" eller "mat". |
| * | Matcher det foregående underuttrykket null eller flere ganger.For eksempel vil zo* matche "z" så vel som "zoo". * tilsvarer {0,}. |
| + | Matcher det foregående underuttrykket én eller flere ganger.For eksempel vil 'zo+' samsvare med "zo" og "zoo", men ikke "z". + tilsvarer {1,}. |
| {N} | n er et ikke-negativt heltall.Matcher nøyaktig n ganger.For eksempel vil ikke 'o{2}' samsvare med 'o' i "Bob", men vil samsvare med begge o'er i "mat". |
| {n,m} | Både m og n er ikke-negative heltall, der n <= m.Matcher minst n ganger og maksimalt m ganger. |
Forekomst
Etter å ha forstått de regulære kravene ovenfor, kan vi skrive SQL-setninger med regulære uttrykk i henhold til våre egne krav.Nedenfor vil vi liste opp noen små eksempler (tabellnavn: person_tbl ) for å utdype vår forståelse:
Finn alle data som begynner med 'st' i navnefeltet:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Finn alle data som slutter med 'ok' i navnefeltet:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Finn alle data som inneholder 'mar'-strengen i navnefeltet:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Finn alle data i navnefeltet som begynner med et vokaltegn eller slutter med strengen 'ok':
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delte "Hvordan matche MySQL-databasens regulære uttrykk? MySQL regexp som bruk" vil hjelpe deg.
Velkommen til å dele lenken til denne artikkelen:https://www.chenweiliang.com/cwl-492.html
For å låse opp flere skjulte triks🔑, velkommen til å bli med i Telegram-kanalen vår!
Del og lik hvis du liker det! Dine delinger og likes er vår fortsatte motivasjon!