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

RegEx grupperinger i Perl

atches \\ n"; } Else {print "Ikke Matchet \\ n"; } Print "\\ $ 1 er:", $ 1, "\\ n"; print "\\ $ 2 er:", $ 2, "\\ n"; Den tilgængelige strengen er "Dette er en, og det er to." Lad os se på mønsteret. Mønstret er /(one).*(two)/; det vil matche enhver sub streng i den tilgængelige streng, der begynder med "en" og slutter med "to". Husk, at prikken, efterfulgt af stjerne repræsenterer et sæt af tegn. Bemærk, at der er to grupper i mønsteret. Grupperne er (en) og (to). I den tilgængelige streng, har du sub streng, "en" så efter en vis afstand, har du sub strengen "to".

Gruppen (en) matcher sub streng "en" i den tilgængelige streng. Gruppen "to" matcher sub strengen "to", i den tilgængelige streng. På grund af denne matching er sub strengen "et" i den tilgængelige streng tildelt den interne variabel $ 1; sub streng, "to" i tilgængelige strengen er tildelt den interne variabel $ 2. I koden, de sidste to erklæringer udskrive værdierne af disse to variabler. Hvis du aldrig har haft de grupper (parenteser), ville matching stadig forekomme, men intet ville være tildele de interne variable, ($ 1 og $ 2). Med andre ord ville intet blive fanget.

Udgangen af ​​koden er: $ 1 er: en $ 2 er: to Du kan have op til 9 grupper (par af parenteser) i mønstret. Hvis der er mindst 9 sub strenge i den tilgængelige streng, der svarer til de 9 grupper i mønstret, så de 9 sub strenge i den tilgængelige streng ville blive tildelt $ 1, $ 2 ... $ 9 henholdsvis. Det er den første matchede ville gå til $ 1; den anden til $ 2, den tredje til $ 3 og så videre. Dette er, hvordan du kan huske eller fange sub strenge i den tilgængelige streng efter matching.

Bemærk: Hvis der ikke er nogen gruppe, så ville der være noget at huske (ingen opgave vil forekomme); ingen fangst. Du behøver ikke at have op til 9 grupper i mønsteret; du kan have et vilkårligt antal mindre. Hvad med indlejrede grupper Betragt følgende kode: Brug streng; hvis ("bogholdere, bogholder og book gå sammen.

" = ~ /bog (keeper (r |) |) /) {print "Matches \\ n"; } Else {print "Ikke Matchet \\ n"; } Print "\\ $ 1 er:", $ 1, "\\ n"; print "\\ $ 2 er:", $ 2, "\\ n"; print "\\ $ 3 er:", $ 3, "\\ n"; Det er produktionen af ​​ovenstående kode: $ 1 er: ihændehavere $ 2 er: s $ 3: Mønsteret ville matche "bogholdere", "bogholder" eller "bogen". Men vi har to grupper; ind i hinanden. Det er disse to grupper, der kan blive husket. Det er grunden til den produktion, $ 3 har intet at vise, da intet blev tildelt den. Den ydre gruppe i det mønste

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