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

RegEx grupperinger i Perl

på tilfælde af sub strenge med fælles del, hvor matching skal ske ved begyndelsen af ​​den tilgængelige streng. Betragt følgende mønster: /(^ x | y) z /Ankeret metategn ^ bruges til at matche regex ved begyndelsen af ​​den tilgængelige streng. Ovenstående mønster matcher "xz" ved start af den tilgængelige streng eller "YZ" hvor som helst i den tilgængelige streng. Følgende udtryk matcher: "xy 5678" = ~ /(^ x | y) z /"34 YZ 56 G" = ~ /(^ x | y) z /Mere om Sub Strings med fælles dele Forestil dig, at du ønsker at matche "bog" eller "bogholder" eller "bogholdere".

Sub streng "bog" forekommer i de tre sætninger (sub strygere). Sub string "bogholder" forekommer i to af de sætninger; og sub string bogholdere forekomme i kun en af ​​de sætninger. Vores mål i dette afsnit er at udvikle et effektivt mønster at matche sub strenge som de tre ovennævnte. Du kan gøre dette: /bog | bogholder | bogholdere /Problemet her (ineffektivitet) er, at du nødt til at skrive "bogen" tre gange, og du er nødt til at skrive "ihændehaver" to gange.

Følgende mønster er effektivt: /bog (keeper (r |) |) /Først og fremmest bemærke her, at du har en indlejret gruppe; grupper kan indlejres. Der er også to vekslen metategn, |; én inde i en indvendig indlejret gruppe; den anden inden for den ydre gruppe. I den indre indlejret gruppe, Perl har at vælge mellem "s" eller ingenting. I den ydre gruppe, Perl stadig at vælge mellem "keeper (s |)" eller ingenting. "bog" vil altid blive valgt. På denne måde vil Perl matche "bog", "bogholder" eller "bogholdere". Situationen her ligner den første situation ovenfor, men er mere kompleks her.

Optagelse Kampe Grupperingen metategn (), det vil sige, parenteser også tjene et andet helt andet formål: de tillader indfangning af sub strenge i den tilgængelige streng, matches. Nå, det mønster er normalt ikke en eksakt ord eller en eksakt sætning. Efter matchningen er opstået med de tilgængelige streng, kan du kender den nøjagtige ord eller en sætning i den tilgængelige streng, som blev modsvaret? Ja, du kan vide dette, og det er takket være gruppering. Op til 9 grupper i et mønster kan blive husket, når matchning opstår.

Med andre ord, kan du ved op til 9 eksakte sub strenge i den tilgængelige streng, når matching har fundet sted. Perl har mange interne variabler, hvoraf 9 er $ 1, $ 2, $ 3, $ 4, $ 5, $ 6, $ 7, og $ 9. Lad os se på et eksempel, før vi fortsætter. Betragt følgende kode: Brug streng; hvis (". Dette er én, og det er to" = ~ /(one).*(two)/) {print "M

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