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

Opbygning af et regulært udtryk i Perl

i er færdig! Vi har matchet '1234' ud af den tilgængelige streng "12345". Der er to ting at bemærke om denne proces. Først den tredje alternativ i den anden gruppe '45' giver også en match, men processen stoppet, før det kom til tredje alternativ - på position en given karakter, længst til venstre erobrer. For det andet, processen kunne få en kamp i position af den tilgængelige strengen det første tegn '1'. Hvis der ikke var nogen kampe på den første position, vil Perl flytte til positionen andet tegn "2" og forsøge kampen forfra.

Perl giver op og erklærer "12345" = ~ /(124 | 123) (46 | 4 | 45) /, for at være falsk, når alle mulige stier på alle mulige karakter positioner er udtømt. X Modifier Detaljer Dette modifier indstilles ved at sætte x (med små bogstaver) lige ved siden af ​​den anden skråstreg af regex. Det er: /mønster /x Wwhitespace data tegn i mønsteret er fuldstændig ignoreret undtagen når undsluppet eller inde i en karakter klasse, når denne modifier er indstillet. Når denne modifikator er indstillet, tegn mellem en ikke-kodet # uden en karakter klasse og næste \\ n karakter, inklusive, også ignoreret.

Jeg vil illustrere alt dette. Den siger blanke data tegn i mønsteret er fuldstændig ignoreret undtagen når undsluppet eller inde i en karakter klasse. Gennemgå den tilgængelige streng: $ availableString = "Jeg er en mand sidder ned."; De følgende to udtryk med x-modifier ikke producerer en kamp. $ availableString = ~ /mand sidder ned /x Dette skyldes i regex, enkelt-mellemrum mellem "mand" og "sidder" og "sidder" og "ned" ikke anerkendes, med tilstedeværelse af x modifier. Hvis du fjerner disse tilsvarende rum i tilgængelige strengen vil du have en kamp, ​​med x-modifier.

Følgende tilgængelige streng vil producere en match med ovennævnte regex: $ availableString = "Jeg er en mansittingdown."; Hvis du vil have den originale tilgængelige snor og regex til at matche, så er du nødt til at flygte mellemrummene i regex. Følgende udtryk producerer en match med den oprindelige tilgængelige streng: $ availableString = ~ /mand \\ siddende \\ ned /x en flygtet enkelt rum er "\\". Lad os nu tale om hvide rum i en karakter klasse. Bemærk, at mellemrum er faktisk [\\ \\ t \\ r \\ n \\ f], ikke bare "\\". Men lad os fortsætte vores illustration ved hjælp af "\\".

Vi bruger det samme tilgængelige streng, der er: $ availableString = "Jeg er en mand sidder ned." Hvis vi ønsker at matche den plads foran møde, efterfulgt af "sidde", med x-modifier, så er vores rege

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