Հոդվածների տեղեկատու
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 ալիքին։
Տարածեք և հավանեք, եթե ձեզ դուր եկավ: Ձեր կիսումներն ու հավանումները մեր շարունակական շարժառիթն են: