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

Flere Regulære udtryk i Perl

og kommentarer er på én linje. Hvis du vil have din regex, og det kommenterer at være på mere end én linje, så skal du bruge x modifier og flygte alle de hvide rum, som følger: $ availableString = ~ /den \\ I # den første del af regex INTERNETTET # Jeg for Internet skal være med store bogstaver /x Følgende kode illustrerer dette: Brug streng; min $ availableString = "Brug internettet.

"; if ($ availableString = ~ /den \\ I # den første del af regex nternet # I til Internet skal være med store bogstaver /x) {print "Matches \\ n"; } Else {print "Ikke Matchet \\ n"; } Med X modifier, # begynder en kommentar. Hvis du ikke bruger x-modifier, bemærke, at "(? #Comment)" Tag ikke kan indlejres, Du kan ikke have "(? #Comment (? # Kommentar))" i en regex. Indlejring Modifikatorer Du kan integrere modifikatorer i regex (i mønsteret). Jeg vil bruge den retspraksis mindre modifier, jeg til at illustrere dette. Husk, den retspraksis, mindre modifier gør den matchende ufølsomt.

Undtagelsen til dette er, når modifier er i en undermønster (se nedenfor). En ændringstast er indlejret ved at omslutte den i karaktererne, (?), Lige efter '?' tegn. Overvej den tilgængelige streng, "XYZ", og regex, /(? I) xyz /Bemærk tegnsæt "(? I)", der har jeg modifier. Ovenstående regex ville matche alle de ovennævnte emne. Følgende udtryk producerer en match: "XYZ" = ~ /xyz /Overvej følgende regex (i?): (? I) /xy z /Her modifier er sat lige før det sidste tegn, "z '. Virkningen er den samme som før. Det er ligegyldigt, hvor du sætter modifier.

Hele regex påvirkes uafhængigt af hvor du sætter modifier. Så /(? I) xyz /, /xy (? I) z /og /xyz /jeg mener det samme. Ikke opfange Grupper En gruppe er tekst i parentes i regex. Som standard er en sådan tekst fanget i en variabel eller listen i venstre side af = ~ operatør. Betragt følgende kode: Brug streng; minarr = ("Dette er én, og det er to." = ~ /(one).*(two)/); print $ arr [0], "\\ n"; print $ arr [1], "\\ n"; Det er produktionen af ​​ovenstående kode: en to Udgangen består af ord, "en" og "to". Disse er elementer fanget og gemt i array,arr. Du må ikke ønsker at fange hver gruppe.

Hvis du ikke ønsker at fange en gruppe, forud for indholdet af gruppen med ":?". For at forhindre gruppen "(en)" ovenfor fra at blive taget til fange, du behøver "(:? En)" for gruppen. Gruppen er stadig gældende i mønster med sin anden fordel, men den er ikke fanget. Følgende kode illustrerer dette: Brug streng; minarr = ("Dette er én, og det er to." = ~ /(?:one).*(two)

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