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

Flere regulære uttrykk i Perl

er: to Vi forhindres den første gruppen, "(en)" fra å bli fanget ved å transformere den inn i, »(?: En)". Fra utgangen, ser vi at "en" av de tilgjengelige strengen ikke har blitt fanget, som vi forventet. "to" er blitt tatt, og det er det eneste element i matrisen. For å gjøre en gruppe ikke-fange, bruke følgende syntaks: (:? GroupContent) Inkludert Modifikatorer i Non-Fange Grupper Vi har sett hvordan du kan bygge modifikatorer i en regex. Det kan være lurt å inkludere en endrings i en ikke-fange gruppe. Det er to måter å gjøre dette.

La oss si at du ønsker å inkludere modifier, jeg i den ikke-fange sub gruppen "(:? En)" ovenfor. Du kan gjøre det slik: en) Følgende uttrykk gir en kamp (:( jeg?): ". Dette er ett og det er to" = ~ /(?:(?i)one).*(two)/Du kan bruke følgende kode til test: bruke strenge; if (". Dette er ett og det er to" = ~ /(?:(?i)one).*(two)/) {print "matchet \\ n"; } Else {skrive "Ikke Matchet \\ n"; } Modifikatorer i grupper Vi har sagt at å sette en endrings i en regex er det samme som å ha modifiserings bare på slutten av regex. Spørsmålet du kan ha er denne:..

"Hvis modifier er i en gruppe, ville det ha sin virkning bare i gruppen eller i hele regex La oss bare skrive fire korte skript for å bekrefte at dette er den første: bruk strenge ; if (". Dette er ett og det er to" = ~ /((?i)one).*(two)/) {print "matchet \\ n";} else {print "Ikke Matchet \\ n";} regex ovenfor er "/((?i)one).*(two)/". Merk at i den tilgjengelige streng, "ONE" er i store bokstaver. Matching skjer i koden ovenfor. Her har vi å gjøre med en fange . gruppe Vurder følgende kode fortsatt med en fange gruppe: Bruk streng; if (". Dette er ett og det er to" = ~ /((?i)one).

*(two)/) {print "matchede \\ n ";} else {print" Ikke Matchet \\ n ";} Den regex er over fortsatt" /((?i)one).*(two)/ONE "er fortsatt i" Merk at i den tilgjengelige streng,. " store bokstaver og "to", er denne gangen i store bokstaver Matching ikke forekommer i koden ovenfor I regex "to" er i senker sak;.. dette er grunnen samsvar ikke oppstår. De ovennevnte to programmene håndtere fange grupper, ville ikke- fange grupper oppfører seg på samme måte? Vi skal bruke to enkle programmer for å bekrefte dette. Tenk på følgende: bruke strenge; if (". Dette er ett og det er to" = ~ /(?:(?i)one).

*(two)/) {print "matchet \\ n"; } Else {skrive "Ikke Matchet \\ n"; } Den regex ovenfor er "/(?:(?i)one).*(two)/". Merk at i den tilgjengelige streng, "ONE" er i store bokstaver. Matching forekommer i ovenstående kode. Her

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