*   >> Læs Uddannelse artikler >> science >> programming

Mysql Regular Expressions Mønster Constructs

MySQL Regular Expressions - Del 3Introduction Dette er del 3 i min serie, MySQL regulære udtryk. Jeg antager at du har læst den tidligere del af serien. Dette er fortsættelsen. I denne del af serien ser vi på MySQL Regular Expressions Mønster konstruktioner. I den tidligere del af serien, så vi et par enkle mønster konstruktioner. Her skal vi se på den mere uddybet mønster constructs.

Database bord til Illustration Vi bruge følgende database tabel kaldet Husdyr, til illustration: | name | ejer | arter | køn | fødsel | død | + -------- + -------- + --------- + ------ + ------------ + - ----------- + | Buffy | Harold | hund | f | 1999/05/13 | NULL | | Bowser | Diane | hund | m | 1999-08-31 | 2005/07/29 | | Fluffy | Harold Taylor | kat | f | 2003/02/04 | NULL | | TimTim | Gwen Jones | kat | m | 2004/03/17 | NULL | | Whistler | Gwin | bir5d | NULL | 2007-12-09 | NULL | Dataene i denne tabel er lidt forskellig fra den i tabellen i den tidligere del af serien.

Du skal teste SELECT-sætninger nedenfor med denne table.The (abc) Construct Her (abc) betyder blot en, to, tre, fire, fem, osv tegn i parentes. I et mønster, parenteser gruppe karakterer i et sæt. Sættet af tegn i mønsteret opfører sig som et enkelt tegn og specialtegn, vi oplevede i den tidligere del af serien, kan anvendes på dem, som om de var en enkelt karakter.

For eksempel kan du have noget lignende, (ab) +, (abc) *, (ABCD) ?, osv Følgende SELECT-sætning returnerer den fjerde række i ovenstående tabel, der matcher den fjerde celleværdi, "TimTim" af første kolonne: SELECT * fra Kæledyr hvor navn rLike "(TIM) +"; Mønstret er, "(Tim) +". Mønstret matcher et eller flere (TIM) i ét emne. Emnet matchede er, "TimTim"; der er to (TIM) i emnet. Hvis mønsteret var, "(tim) *", alle celleværdierne af den første kolonne ville have matchet, fordi * betyder nul eller flere (mens + betyder en eller flere) .

Den [[::]] konstruerer en ordet er en sekvens af ord tegn, der ikke indledes med eller efterfulgt af ord tegn. Et ord karakter er et alfanumerisk tegn eller en understregning, _. Eksempler på ord tegn er: »a«, "b", "c", "1", "2", "3" osv markøren, [[::]] i et mønster matcher slutningen af ​​et ord . Disse konstruktioner er ord-grænse markører. De er ikke tegn; de er grænselag identifikatorer.

Følgende SELECT-sætning returnerer den fjerde række i ovenstående tabel, der matcher "Gwen" i emnet, "Gwen Jones" af den fjerde celle i anden kolonne: SELECT * fra Kæledyr hvor ejeren rLike "Gwen [[:>:]] "; Mønstret er, "Gwen [[:>:]]". Det begynder med ordet "Gwen" efterfulgt af i slutningen af ​​ordet markør, [[:>:]]. Så det passer "Gwen" og dens afslutning i emnet, "Gwen Jones". I emnet, efter ordet "Gwen", har du et ord-grænse, før rummet karakter. Den [[: Bemærk, at hvert ord-grænse markør har to par modsatte kantede parenteser, to koloner og en character.

The [a-dX] og [^ a-dX] Konstruerer Prikken specialtegn matcher et vilkårligt enkelt tegn. Hvad om sagen, når du ønsker at matche et enkelt tegn fra et sæt af tegn? Overvej ord, "Gwen", "Gwin", "Gwan" og "Gw4n". Ordene afviger i karakter ved den tredje position. Det første ord har »e« i tredje position; det andet ord har »i« i tredje position; den tredje ord har »a« i tredje position; og den fjerde ord har '4' i tredje position. Så du kan være interesseret i at matche de tegn, »e«, »i«, »a« og »4«. Det betyder, at du ønsker at matche en karakter fra sættet, [eia4].

Mønsteret for denne sag er, "[eia4]", hvilket ville matche et enkelt tegn på en position i et emne, der er, »e« eller »i« eller »a« eller »4«. Følgende SELECT-sætning vil returnere den fjerde og femte rækker af ovenstående tabel, der matcher "Gwen Jones" i fjerde celle og "Gwin" i femte celle, alle i den anden kolonne. SELECT * fra Kæledyr hvor ejeren rLike "Gw [eia4] n"; Mønstret i redegørelsen er, "Gw [eia4] n". Emnerne er "Gwen Jones" og "Gwin". Involveret i de emner ord, er "Gwen" for "Gwen Jones" og "Gwin" for "Gwin". "Gwen" og "Gwin" adskiller sig i den tredje position af tegnene.

Så i emnet, "Gwen Jones", "e" i "Gwen" matches, og i emnet, "Gwin", 'i' matches. »e« og »i« er i den tredje position af ordene, "Gwen" og "Gwin" hhv. I en opskrift, "Gw [eia4] n", [eia4] er i den tredje position. Bemærk: [eia4] og (eia4) betyde forskellige ting. [eia4] betyder 'e «eller» i «eller» a «eller» 4 «; mens (eia4) betyder behandle sæt tegn, "eia4", som en enkelt character.Ranges [eia4] fra ovenstående er et eksempel på en klasse. Hvad om sagen, hvor du vil have en kamp fra klassen, [abcde]? Bemærk, at dette er en række tegn i alfabetet fra 'a' til »e«.

[abcde] er bedre skrevet som, [a-e]. Bemærk brugen af ​​bindestreg. Du kan kombinere en række med enkelte tegn. For eksempel [a-dX] betyder »a« eller »b« eller »c« eller »d« eller »X«, dvs. intervallet annonce og X. Du kan også have en række med cifre, f.eks [0-5], [3-9], [0-9] bevirke, at Class Hvis du ønsker at matche et tegn på en position i emnet undtagen dem i klassen, så ville du bruge ^ symbol. Så hvis du ønsker at matche enhver karakter undtagen dem i [a-dX], du ville skrive [^ a-dX] i mønstret. Bemærk brugen og placeringen af ​​^ i klassen konstruktionen.

Følgende SELECT-sætning vil returnere den første og anden rækker, matching, "hund" i første og andet celler i den tredje tyktarm: SELECT * fra Kæledyr hvor arter rLike "d [^ en] g"; Mønstret i sætningen er "d [^ en] g", hvilket betyder, at ingen karakter i området, en, bør modsvares ved den pågældende stilling. Mønstret matchede, begynder med 'd', efterfulgt af et tegn, der ikke er i området, en, og derefter fulgt af »g«. 'o' er ikke i intervallet, så "hund" er matched.Formal Karakter Klasser Nogle klasser er så vigtige, at de har navne.

Følgende liste giver navnene på disse klasser og deres beskrivelser: Navn: Beskrivelse alnum: Alfanumerisk tegn alpha: alfabetiske tegn blank: blanke tegn CNTRL: Kontrol tegn ciffer: Digit tegn graf: grafiske tegn lavere: Små bogstaver alfabetiske tegn print: Grafik eller rum tegn punct: tegnsætningstegn plads: Space, fane, ny linje, og linjeskift øverste: med store bogstaver alfabetiske tegn xdigit: hexadecimalt ciffer tegn Hvis du vil bruge nogen af ​​disse klasser, du bruger markøren konstruktion, [[: navn:]].

Følgende SELECT-sætning vil returnere den sidste række i tabellen matching "bir5d" til ciffer, 5, i den femte celle i den tredje kolonne: SELECT * fra Kæledyr hvor arter rLike "bir [[: cifret:]] d"; Mønstret er, "bir [[: cifret:]] d". Så emnet "bir5d", der cifferet, 5, ved den fjerde position matches. [[: cifret:]] er i den fjerde position i mønsteret, "bir [[: cifret:]] d" .De x {m}, x {m,} og x {m, n} Konstruerer Lad m og n være heltal (hele tal). x {m} i et mønster matcher nøjagtigt m på hinanden følgende forekomster af x. x {m,} matcher mindst m fortløbende forekomster af x.

x {m, n} matcher mellem m og n på hinanden følgende forekomster af x. Vi har nu se på nogle eksempler. Mønstret, "fe {1} d", matcher emnet "fed", hvor "e" matches præcis én gang. Mønstret, "fe {1,} d", matcher emnet, "fodret", og emnet, "foder", hvor "e" matches mindst én gang. Mønstret, "fe {1,2} d", matcher emnet, "fodret", og emnet, "foder", hvor "e" matches mindst én gang og højst 2 gange. Konstruktionerne er ikke kun bruges til et tegn; de kan også anvendes til et atom (piece på det mønster). Så mønstret ", en [BCD] {3} e" matcher emnet, "abcde".

Mønstret ", en [BCD] {3,} e" matcher emnet, "abcde". Mønstret ", en [BCD] {1,10} e" matcher emnet, "abcde". Atomet er [BCD]. Nu [BCD] betyder "b" eller "c" eller "d". Så sub mønster, "[BCD] {3)", betyder "BBB" eller "CCC" eller "DDD" eller "BCB" eller "CBC" eller "DCD" eller "bdb" eller "CDC" eller "DBD" . Sub mønster [BCD] {3,} betyder en kombination af mindst en af ​​de tre karakterer. Sub mønster, [BCD] {1,10}, betyder mindst ét ​​tegn fra de tre karakterer, op til en kombination af 10 tegn fra de 3 characters.

White mellemrum hvide rum karakter litteraler er: "b", "t ',' n ',' v ',' f ', og »r«. Navnene på disse litteraler er henholdsvis, backspace, fane, ny linje, vertikal-fanen, formular-foder og transport-return. Du kan bruge blanke tegn litteraler direkte i mønstret. Antag, at du havde følgende række tilføjes i tabellen: | Lion | Peter | finsh | f | 2008-12-09 | NULL | Cellen for arter, har værdien "finsh", med ny linje karakter, 'n'. Følgende SELECT-sætning vil returnere rækken, der matcher emnet, "finsh". SELECT * fra Kæledyr hvor arter rLike "finsh"; Mønstret er, "finsh".

Du kan også bruge navnet på den hvide rum karakter, men i dette tilfælde, bliver du nødt til at placere den i markøren, [[.name.]]. Følgende SELECT-sætning returnerer tilføjede række, der matcher emnet, "finsh". SELECT * fra Kæledyr hvor arter rLike "fisk [[newline]..]"; Mønstret er, "fi [[. Newline.]] Sh". Du kan bruge den bogstavelige i markøren. Følgende SELECT-sætning returnerer tilføjede række, der matcher emnet, "finsh". SELECT * fra Kæledyr hvor arter rLike "fisk [[n]..]"; Mønstret er, "fi [[. N.]] Sh" Markøren har to par modsatte firkantede parenteser og to dots.

The MySQL Regular Expressions Metategn En metategn er et tegn bruges til at kontrollere eller definere andre tegn. I tilfælde af mønstre, MySQL Regulære udtryk metategn er: ^ $. * +? | * {} []: =>

Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.