*   >> Lezen Onderwijs artikelen >> science >> programming

Mysql reguliere expressies Pattern Constructs

MySQL Regular Expressions - Deel 3Introduction Dit is deel 3 van mijn reeks, MySQL reguliere expressies. Ik neem aan dat je het vorige deel van de serie hebt gelezen. Dit is het vervolg. In dit deel van de serie kijken we naar MySQL reguliere expressies Pattern Constructs. In het vorige deel van de serie, zagen we een paar eenvoudige patroon construeert. Hier zullen we kijken naar de meer uitgewerkte patroon constructs.

Database tafel Illustratie We moeten de volgende database tabel genaamd Huisdieren gebruiken, ter illustratie: | Naam | eigenaar | soorten | sex | geboorte | death | + -------- + -------- + --------- + ------ + ------------ + - ----------- + | Buffy | Harold | dog | f | 1999/05/13 | NULL | | Bowser | Diane | dog | m | 1999/08/31 | 2005-07-29 | | Fluffy | Harold Taylor | cat | f | 2003/02/04 | NULL | | Timtim | Gwen Jones | cat | m | 2004-03-17 | NULL | | Whistler | Gwin | bir5d | NULL | 2007-12-09 | NULL | De gegevens in deze tabel is iets anders dan die in de tabel van het vorige deel van de serie.

Je moet het testen van het SELECT-instructies hieronder deze table.The (abc) Construct Hier, (abc) betekent eenvoudig één, twee, drie, vier, vijf, etc. letters tussen haakjes. In een patroon, haakjes groep tekens in een set. De reeks karakters in het patroon gedraagt ​​als een karakter en de speciale tekens we in het vorige deel van de serie kan worden toegepast alsof ze een enkel teken. Bijvoorbeeld, kan je iets als, (ab) +, (abc) *, (ABCD) ?, enz.

De volgende SELECT-instructie geeft de vierde rij van de bovenstaande tabel, die overeenkomen met de vierde cel waarde, "Timtim" van de eerste kolom: SELECT * van huisdieren, waar de naam rLike "(tim) +"; Het patroon is, "(tim) +". Het patroon overeenkomt met een of meer (tim) in een subject. Het onderwerp afgestemd is, "Timtim"; Er zijn twee (tim) in het subject. Als het patroon was, "(tim) *", al de cel waarden van de eerste kolom zou hebben afgestemd, want * betekent nul of meer (terwijl +: een of meer) .

De [[::]] Construeert een woord is een reeks woordtekens die niet voorafgegaan of gevolgd door woordtekens. Het woord karakter is een alfanumeriek teken of een underscore, _. Voorbeelden woord karakters 'a', 'b', 'c', '1', '2', '3', enz de marker, [[::]] in een patroon overeenkomt met het einde van een woord . Deze constructen zijn woord-grens markers. Ze zijn niet tekens; ze zijn grens identifiers.

De volgende SELECT-instructie geeft de vierde rij van de bovenstaande tabel, bijpassende "Gwen" in het onderwerp, "Gwen Jones" van de vierde cel in de tweede kolom: SELECT * van Huisdieren waar de eigenaar rLike "Gwen [[:>:]] '; Het patroon is, "Gwen [[>:]]". Het begint met het woord, "Gwen", gevolgd door het einde van het woord marker, [[:>:]]. Dus, het past "Gwen" en het einde ervan in het onderwerp, "Gwen Jones". In het onderwerp, na het woord, "Gwen", heb je een woord-grens voordat de spatie.

De [[: Merk op dat elk woord-grenspaal heeft twee paren tegenover vierkante haken, twee dubbele punten en een character.The [a-dX] en [^ a-dX] Constructen de stip speciale teken komt overeen met elk willekeurig teken. Hoe zit het geval wanneer u een enkel teken uit een set van personages passen? Denk aan de woorden, "Gwen", "Gwin", "Gwan" en "Gw4n". De woorden verschillen in het teken op de derde positie. Het eerste woord "e" in de derde positie; het tweede woord heeft 'i' in de derde positie; het derde woord "een" in de derde positie; en het vierde woord '4' in de derde stand.

Zodat u wellicht geïnteresseerd zijn om de personages, 'e', ​​'i', 'a' en '4' overeenkomen. Dit betekent dat u wilt een personage uit de verzameling passen, [eia4]. Het patroon voor deze zaak is, "[eia4]", waarbij één karakter zou passen op een plaats in een onderwerp dat, 'e' of 'i' of 'a' of '4'. De volgende SELECT-instructie wordt de vierde en vijfde rijen van de bovenstaande tabel terug, bijpassende "Gwen Jones" in de vierde cel en "Gwin" in de vijfde cel, al in de tweede kolom. SELECT * van Huisdieren waar de eigenaar rLike "Gw [eia4] n"; Het patroon in de verklaring is, "Gw [eia4] n".

De onderwerpen zijn "Gwen Jones" en "Gwin". Het woord die betrokken zijn bij de onderwerpen, is "Gwen" voor "Gwen Jones" en "Gwin" voor "Gwin". "Gwen" en "Gwin" verschillen in de derde positie van de tekens. Dus, in het onderwerp, "Gwen Jones", "e" in "Gwen" is afgestemd en in het onderwerp, "Gwin ',' i 'wordt geëvenaard. 'e' en 'i' zijn in de derde positie van de woorden, "Gwen" en "Gwin" respectievelijk. In het patroon, "Gw [eia4] n", [eia4] zich in de derde stand. Opmerking: [eia4] en (eia4) verschillende dingen betekenen.

[eia4] betekent 'e' of 'ik' of 'a' of '4'; while (eia4) betekent dat de behandeling van de set van personages, "eia4", als één character.Ranges [eia4] van boven is een voorbeeld van een klasse. Wat over de zaak, waar u een wedstrijd uit de klas, [ABCDE]? Merk op dat dit is een reeks van letters van het alfabet van 'a' naar 'e'. [ABCDE] is beter geschreven als [a-e]. Let op het gebruik van het koppelteken. U kunt een bereik combineren met enkele karakters. Bijvoorbeeld [a-dX] betekent 'a' of 'b' of 'c' of 'd' of 'X', dat is het bereik advertentie en X.

U kunt ook een reeks met cijfers, bv [0-5], [3-9], [0-9] negatie van de Class Als u een teken wilt passen op een positie in het onderwerp, behalve die in de klas, dan zou je het ^ symbool gebruikt. Dus, als je wilt een teken behalve die in [a-dX] overeenkomen, typt u [^ a-dX] in het patroon. Let op het gebruik en de positie van ^ in de klasse construct.

De volgende SELECT-instructie zal de eerste en tweede rij, aanpassing, "hond" terug te keren in het eerste en tweede cellen van de derde colon: SELECT * van huisdieren, waar soorten rLike "d [^ een] g"; Het patroon in de verklaring is "d [^ een] g", wat betekent dat er geen personage in de serie, met een, moet worden afgestemd op de positie in kwestie. Het patroon overeenkomt, met een 'd', gevolgd door een teken dat niet in het bereik, een en gevolgd door "g". 'o' is niet in het bereik, dus "hond" is matched.Formal Tekenklassen Sommige klassen zijn zo belangrijk dat ze namen.

De volgende lijst geeft de namen van deze klassen en hun beschrijvingen: Naam: Beschrijving alnum: alfanumerieke tekens alpha: alfabetische tekens leeg: witruimtekarakters cntrl: Controle karakters digit: Digit tekens grafiek: Grafische tekens lager: Kleine letters alfabetische tekens afdrukken: Graphic of ruimte tekens Punct: Interpunctie tekens ruimte: Ruimte, tab, nieuwe regel, en carriage return bovenste: Hoofdletters alfabetische tekens xdigit: hexadecimaal getal tekens Om een ​​van deze klassen gebruiken, hebt u de marker constructie gebruiken, [[: naam:]].

De volgende SELECT-instructie wordt de laatste rij terug te keren in de tabel matching "bir5d" voor het cijfer 5, in de vijfde cel van de derde kolom: SELECT * van huisdieren, waar soorten rLike "bir [[: digit:]] d '; Het patroon is, "bir [[: digit:]] d". Zodat het onderwerp "bir5d" met het cijfer 5, op de vierde positie wordt bereikt. [[: digit:]] is op de vierde positie van het patroon, "bir [[: digit:]] d" .De x {m} x {m, x} en {m, n} Constructen Let m en n zijn integers (hele getallen). x {m} in een patroon past precies m opeenvolgende gevallen van x.

x {m} past tenminste ben opeenvolgende gevallen van x. x {m, n} wedstrijden tussen m en n opeenvolgende gevallen van x. We kijken nu naar een aantal voorbeelden. Het patroon, "fe {1} d", komt overeen met het onderwerp "gevoed", waarbij "e" wordt aangepast precies één keer. Het patroon, "fe {1} d", komt overeen met het onderwerp, "gevoed" en het onderwerp, "diervoeder", waarbij "e" ten minste eenmaal wordt geëvenaard. Het patroon, "fe {1,2} d", komt overeen met het onderwerp, "gevoed" en het onderwerp, "diervoeder", waarbij "e" wordt aangepast ten minste één keer en maximaal 2 keer.

De constructen worden niet alleen gebruikt voor een teken; ze kunnen ook gebruikt worden voor een atoom (deel van het patroon). Dus, het patroon, "a [BCD] {3} e" komt overeen met onderwerp "ABCDE". Het patroon, "een [bcd] {3} e" komt overeen met het onderwerp, "abcde". Het patroon, "een [bcd] {1,10} e" komt overeen met het onderwerp, "abcde". Het atoom is [bcd]. Nu, [BCD] betekent "b" of "c" of "d". Dus de sub patroon "[BCD] {3)", betekent "bbb" of "ccc" of "DDD" of "BCB" of "CBC" of "dcd" of "bdb" of "CDC" of "DBD" .

De sub patroon [BCD] {3}: een combinatie van ten minste een van de drie personages. De sub patroon, [BCD] {1,10}, betekent ten minste één teken van de drie letters, tot een combinatie van 10 karakters van de 3 characters.White spaties blanco teken letterlijke zijn: 'b', 't ',' n ',' v ',' f 'en' r '. De namen van deze letterlijke respectievelijk, backspace, tab, nieuwe regel, verticale tab, form-voer en regelterugloop. U kunt de witruimte karakter letterlijke gebruiken, direct in het patroon.

Veronderstellen dat u had de volgende rij aan de tabel toegevoegd: | Leeuw | Peter | finsh | f | 2008-12-09 | NULL | De cel voor soort heeft de waarde "finsh", met de nieuwe regel karakter, 'n'. De volgende SELECT-instructie zal de rij terug, passend bij het onderwerp, "finsh". SELECT * van huisdieren, waar soorten rLike "finsh"; Het patroon is, "finsh". U kunt ook de naam van de witte ruimte karakter, maar in dit geval, moet u het in de marker, [[.name.]]. De volgende SELECT-instructie geeft de toegevoegde rij, passend bij het onderwerp, "finsh".

SELECT * van huisdieren, waar soorten rLike "vis [[newline]..]"; Het patroon is, "fi [[. Newline.]] Sh". U kunt de letterlijke gebruiken in de marker. De volgende SELECT-instructie geeft de toegevoegde rij, passend bij het onderwerp, "finsh". SELECT * van huisdieren, waar soorten rLike "vis [[n]..]"; Het patroon is, "fi [[. N.]] Sh" De markering heeft twee paren tegenover vierkante haken en twee dots.The MySQL reguliere expressies Metatekens Een metateken is een teken dat wordt gebruikt om te controleren of definieer andere personages.

In het geval van patronen, de MySQL reguliere expressies metacharacters zijn: ^ $. * +? | * {} []: =>

Page   <<       [1] [2] [3] [4] [5] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.