Ինչպե՞ս են MySQL տվյալների բազայի կանոնավոր արտահայտությունները համընկնում: MySQL regexp-ի նման օգտագործումը

MySQL տվյալների բազաԻնչպե՞ս է կանոնավոր արտահայտությունը համընկնում:MySQL regexp-ի նման օգտագործումը

MySQL կանոնավոր արտահայտություններ

Նախորդ գլուխներում մենք իմացանք, որ MySQL-ը կարող է լինել Հավանել...% անորոշ համապատասխանության համար:

MySQL-ն աջակցում է նաև այլ կանոնավոր արտահայտությունների համապատասխանությանը: REGEXP օպերատորն օգտագործվում է MySQL-ում՝ կանոնավոր արտահայտությունների համապատասխանության համար:

Եթե ​​դուք գիտեք PHP կամ Perl, դա բավականին պարզ է, քանի որ MySQL-ի կանոնավոր արտահայտությունների համապատասխանությունը նման է այս սկրիպտներին:

Հետևյալ աղյուսակի կանոնավոր օրինաչափությունները կարող են կիրառվել REGEXP օպերատորի համար:

Ռեժիմը描述
^Համապատասխանում է մուտքագրման տողի սկզբին:^ նաև համընկնում է «\n»-ից կամ «\r»-ից հետո դիրքին, եթե սահմանված է RegExp օբյեկտի Multiline հատկությունը:
$Համապատասխանում է մուտքագրման տողի ծայրին:Եթե ​​RegExp օբյեկտի Multiline հատկությունը սահմանված է, $-ը նույնպես համընկնում է «\n»-ի կամ «\r»-ի առաջ գտնվող դիրքի հետ:
.Համապատասխանում է ցանկացած նիշի, բացի «\n»-ից:Ցանկացած նիշ, ներառյալ «\n»-ը համապատասխանելու համար, օգտագործեք «[.\n]»-ի պես օրինակ:
[...]կերպարների հավաքածու.Համապատասխանում է պարունակվող նիշերից որևէ մեկին:Օրինակ՝ «[abc]»-ը կհամընկնի «plai«a»-ն n»-ում:
[^…]Բացասական կերպարների հավաքածու.Համընկնում է չպարունակվող ցանկացած նիշի:Օրինակ, «[^abc]»-ը կհամընկնի «p»-ի «պարզ»-ի հետ:
p1|p2|p3Համապատասխանում է p1 կամ p2 կամ p3:Օրինակ, «z|food»-ը կհամապատասխանի կամ «z»-ին կամ «food»-ին: «(z|f)ood»-ը համապատասխանում է «zood»-ին կամ «food»-ին:
*Համապատասխանում է նախորդ ենթաարտահայտմանը զրոյական կամ ավելի անգամ:Օրինակ, zo*-ը կհամապատասխանի «z»-ին, ինչպես նաև «zoo»-ին: * համարժեք է {0,}-ին:
+Համապատասխանում է նախորդ ենթաարտահայտությանը մեկ կամ մի քանի անգամ:Օրինակ, «zo+»-ը կհամապատասխանի «zo»-ին և «zoo»-ին, բայց ոչ «z»-ին: +-ը համարժեք է {1,}-ին:
{ոչ}n-ը ոչ բացասական ամբողջ թիվ է:Համապատասխանում է ուղիղ n անգամ:Օրինակ՝ «o{2}»-ը չի համընկնի «Բոբ»-ի «o»-ի հետ, բայց «սնունդ»-ի երկու օ-ն էլ կհամապատասխանի:
{n,m}Երկուսն էլ m, և n-ն ոչ բացասական ամբողջ թվեր են, որտեղ n <= m:Համապատասխանում է առնվազն n անգամ և առավելագույնը m անգամ:

օրինակ

Վերոնշյալ կանոնավոր պահանջները հասկանալուց հետո մենք կարող ենք գրել SQL հայտարարություններ կանոնավոր արտահայտություններով՝ ըստ մեր պահանջների։Ստորև մենք կթվարկենք մի քանի փոքր օրինակներ (աղյուսակի անվանումը՝ person_tbl )՝ մեր հասկացողությունը խորացնելու համար.

Անվան դաշտում գտեք «st»-ով սկսվող բոլոր տվյալները.

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

Գտեք բոլոր տվյալները, որոնք ավարտվում են «ok» անվան դաշտում.

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

Անվան դաշտում գտեք «mar» տողը պարունակող բոլոր տվյալները.

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

Գտեք բոլոր տվյալները անվան դաշտում, որը սկսվում է ձայնավոր նիշով կամ ավարտվում «ok» տողով.

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

Հույս Chen Weiliang բլոգ ( https://www.chenweiliang.com/ ) կիսվել է «Ինչպե՞ս համապատասխանեցնել MySQL տվյալների բազայի կանոնավոր արտահայտությունները: MySQL regexp like use»-ը կօգնի ձեզ։

Բարի գալուստ՝ կիսելու այս հոդվածի հղումը.https://www.chenweiliang.com/cwl-492.html

Ավելի շատ թաքնված հնարքներ բացահայտելու համար🔑, միացեք մեր Telegram ալիքին։

Տարածեք և հավանեք, եթե ձեզ դուր եկավ: Ձեր կիսումներն ու հավանումները մեր շարունակական շարժառիթն են:

 

发表 评论

Ձեր էլփոստի հասցեն չի հրապարակվի: Օգտագործվում են պահանջվող դաշտերը * Պիտակ

Ոլորել դեպի սկիզբ