*   >> Lese Utdanning Artikler >> science >> programming

Bygge et vanlig uttrykk i Perl

nderstrek, _. Vi insisterer også på at navnet ikke må være mindre enn 3 tegn eller mer som 18 tegn. I dette eksempelet har vi pålagt de detaljerte spesifikasjoner. Breaking Down problemet i mindre deler navn består av * bokstavene i alfabetet i små og store bokstaver mellom 3 til 18 bokstaver, inkluderende, og /eller * tall fra 0 til 9 mellom 3 til 18 sifre, inkluderende, og /eller * understrekings mellom 3 til 18 sifre, inkluderende. Det betyr at du kan ha opp til 18 strek for et navn. La oss tillate at for enkelhet. * Vi må begrense den tilgjengelige strengen til 3 eller 6 tegn.

Sette til regexes Den regex for den første delen er: /^ [a-za-Z] {3,18} $ /The regex for den andre delen er: /^ [0-9] {3,18} $ /The regex for den tredje delen er: /^ [_] {3,18} $ /Kombinere regexes I pausen ned delen, er de ovennevnte tre deler kombinert med uttrykket "og /eller" Det er ingen direkte måte å gjøre dette, så vi må slutte den. Dette er kombinert regex: /^ [a-za-Z0-9 _] {3,18} $ /Optimalisere Kombinert Regex Dette betyr forkorte kombinert regex. Legg merke til at klassen [a-za-Z0-9_] er forkortet til \\ w.

Den optimaliserte regex er: /^ [\\ w] {3,18} $ /backtracking Vi har sett hvordan å matche alternativer ved hjelp av vekslingen metategn, |. Når matchende alternativer, bruker Perl en prosess som kalles backtracking. Jeg vil illustrere dette med et eksempel. Betrakt det følgende uttrykk: "12345" = ~ /(124 | 123) (46 | 4 | 45) /I vil forklare tilbakesporing av forklare virkemåten av de ovennevnte uttrykk. Følgende trinn forklarer hvordan PHP løser uttrykket ovenfor. A. Det starter med det første tallet i den tilgjengelige strengen '1'. B.

Den prøver den første alternativ i den første gruppen '124'. C. Det ser matching av '1' etterfulgt av 'to'. Det er ok. D. Det legger merke til at '4' i regex samsvarer ikke '3' i den tilgjengelige streng - som er en blindvei. Så det backtracks to tegn i den tilgjengelige streng og plukker den andre alternativ i den første gruppen '123'. E. Det matcher '1' etterfulgt av 'to' etterfulgt av '3'. Den første gruppen er fornøyd. F. Den beveger seg videre til den andre gruppen, og plukker det første alternativet '46'. G. Det tilsvarer '4' i den tilgjengelige streng. H.

Men '6' i regex samsvarer ikke '5' i den tilgjengelige streng, så det er en blindvei. Det backtracks ett tegn i den tilgjengelige streng og plukker den andre alternativ i den andre gruppen '4'. I. '4' kamper. Den andre gruppe er tilfredsstilt. J. Vi er ved slutten av regex;

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.