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

Flere Regulære udtryk i Perl

/); print $ arr [0], "\\ n"; print $ arr [1], "\\ n"; Udgangen af ​​koden er: to Vi forhindrede den første gruppe, "(en)" fra at blive fanget af omdanne den til "(:? En)". Fra udgangen, ser vi, at "en" af de tilgængelige strengen ikke er blevet fanget, som vi forventede. "to" er blevet fanget, og det er det eneste element i arrayet. For at gøre en gruppe ikke-optagelse, skal du bruge følgende syntaks: (:? GroupContent), herunder Modifikatorer i Ikke-Optagelse grupper Vi har set, hvordan du kan integrere modifikatorer i en regex.

Du ønsker måske at inkludere en modifikator i en ikke-fanger gruppe. Der er to måder at gøre dette. Lad os sige, du ønsker at inkludere modifier, jeg i den ikke-fange undergruppe "(:? En)" ovenfor. Du kan gøre det sådan her: en) Følgende udtryk producerer en kamp (:( jeg?): ". Dette er en, og det er to" = ~ /(?:(?i)one).*(two)/Du kan bruge følgende kode til test: Brug streng; hvis (". Dette er en, og det er to" = ~ /(?:(?i)one).

*(two)/) {print "Matches \\ n"; } Else {print "Ikke Matchet \\ n"; } Modifiers i grupperne Vi har sagt, at sætte en modifikator i en regex er det samme som at have modificerende netop i slutningen af ​​regex. Det spørgsmål, du måtte have, er dette:.. "Hvis modifier er i en gruppe, ville det have sin virkning i gruppen eller i hele regex Lad os bare skrive fire korte scripts til at kontrollere, at dette er den første: brug streng og hvis (". Dette er en, og det er to" = ~ /((?i)one).*(two)/) {print "Matches \\ n";} else {print "Not Matched \\ n";} regex Ovenstående er "/((?i)one).*(two)/".

Bemærk, at i den tilgængelige streng, "ONE" er i store bogstaver. Matching sker i ovenstående kode. Her har vi at gøre med en fange Overvej gruppe følgende kode stadig med en fange gruppe:. bruge streng, og hvis (". Dette er en, og det er to" = ~ /((?i)one).*(two)/) {print "Matchet \\ n ";} else {print" Not Matched \\ n ";} Den regex Ovenstående er stadig" /((?i)one).*(two)/ONE "er stadig i" Bemærk, at i den tilgængelige streng, ". store bogstaver og "to", denne gang er i den store bogstaver Matching ikke forekommer i ovenstående kode i regex "to" er i sænker sag..

dette er grunden til matchning ikke forekommer. De to ovennævnte programmer håndtere indfange grupper, ville ikke-fange grupper opfører sig på samme måde? Vi skal bruge to mere simple programmer til at kontrollere dette. Overvej følgende: Brug streng; hvis (". Dette er en, og det er to" = ~ /(?:(?i)one).*(two)/) {print "Matches \\ n"; } Else {print "Ikke Matchet

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