Ki jan ekspresyon regilye baz done MySQL matche? MySQL regexp tankou itilizasyon

Kijan pou fè matche ak ekspresyon regilye nan yon baz done MySQL ? Kijan pou itilize yon regexp MySQL konsa?

MySQL ekspresyon regilye

Nan chapit anvan yo, nou te aprann ke MySQL ka itilize LIKE ...% pou matche ak flou.

MySQL sipòte tou lòt matche ekspresyon regilye yo.Yo itilize operatè REGEXP nan MySQL pou matche ekspresyon regilye.

Si w konnen PHP oswa Perl, li trè fasil fè paske matche ekspresyon regilye MySQL a sanble ak sa yo ki nan scripts sa yo.

Modèl regilye yo nan tablo sa a ka aplike nan operatè REGEXP la.

Mode描述
^Koresponn ak kòmansman fisèl opinyon an. Si yo mete pwopriyete Multiline objè RegExp la, ^ tou matche ak pozisyon apre '\n' oswa '\r'.
$Koresponn ak fen fisèl D '. Si yo mete pwopriyete Multiline objè RegExp la, $ tou matche ak pozisyon anvan '\n' oswa '\r'.
.Koresponn ak nenpòt karaktè eksepte "\n". Pou matche ak nenpòt karaktè ki gen ladan '\n', sèvi ak yon modèl tankou '[.\n]'.
[...]Koleksyon karaktè. Koresponn ak nenpòt nan karaktè yo genyen yo. Pou egzanp, '[abc]' ta matche ak "plai'a' nan n".
[^…]Yon koleksyon karaktè negatif. Koresponn ak nenpòt karaktè ki pa enkli. Pa egzanp, '[^abc]' matche ak 'p' nan "plenn".
p1|p2|p3Matche p1 oswa p2 oswa p3. Pa egzanp, 'z|manje' matche ak "z" oswa "manje". '(z|f)ood' matche ak "zood" oswa "manje".
*Koresponn ak sou-ekspresyon anvan an zewo oswa plis fwa. Pa egzanp, zo* matche "z" ak "zoo". * Ekivalan a {0,}.
+Koresponn ak sou-ekspresyon anvan an youn oswa plizyè fwa. Pa egzanp, 'zo+' matche ak "zo" ak "zoo", men se pa "z". + ekivalan a {1,}.
{n}n se yon nonb antye ki pa negatif. Match detèmine n fwa. Pa egzanp, 'o{2}' pa ka matche ak 'o' nan "Bob", men li ka matche ak de o nan "manje".
{n,m}m ak n tou de se nonm antye ki pa negatif, kote n <= m. Matche omwen n fwa ak omwen m fwa.

Enstans

Apre w fin konprann kondisyon regilye ki anwo yo, nou ka ekri deklarasyon SQL ak ekspresyon regilye selon pwòp bezwen nou yo. Anba a nou pral lis kèk ti egzanp (non tab la: person_tbl) pou apwofondi konpreyansyon nou:

Jwenn tout done ki kòmanse ak 'st' nan jaden non an:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Jwenn tout done ki fini ak 'ok' nan jaden non an:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Jwenn tout done ki genyen fisèl 'mar' nan jaden non an:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Jwenn tout done nan jaden non an ki kòmanse ak yon karaktè vwayèl oswa ki fini ak fisèl 'ok':

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

kòmantè

您的邮箱地址不会被公开。必填项已用*标注

Ki gen tèt