*   >> läser Utbildning artiklar >> science >> programming

Fler mönster för reguljära uttryck i Perl

n matchar alla a: i "caandy" och "caaaaaaandy.". {n} där n är ett positivt heltal. Detta matchar exakt n förekomster av föregående punkt. /a {2} /matchar inte "en" i "godis", men det matchar alla a-talet i "caandy", och endast de två första a: i "caaandy." {n, m} där n och m är positiva heltal. Detta matchar minst n och högst m förekomster av föregående punkt. Till exempel /a {1,3} /matchar inget i "cndy", "a" i "godis," de första två a: i "caandy," och de tre första a: i "caaaaaaandy".

Lägg märke till att när matchning "caaaaaaandy", är matchen "aaa", trots att den tillgängliga strängen hade mer en s i det. Följande kod skapar en match: min $ år = "2009"; $ år = ~ /\\ d {2,4} /Detta är en enkel validering som gör att året är minst 2 siffror och inte mer än 4 siffror. Du kan prova ovan med följande program: använd strikt; min $ år = "2009"; if ($ år = ~ /\\ d {2,4} /) {print "matchade"; } Else {print "inte motsvaras"; } Matchande Alternation Vi kan matcha olika teckensträngar med växlingen metatecken "|". För att matcha "gris" eller "får", vi bildar regex, /svin | får /.

Perl kommer att försöka matcha det reguljära uttrycket så tidigt som möjligt punkten i snöre. Vid varje teckenposition, kommer Perl först försöka matcha det första alternativet, "gris". Om "pig" inte matchar, kommer Perl försök sedan nästa alternativ, "får". Om "får" inte stämmer heller, sedan Perl går vidare till nästa position och börjar med det första alternativet igen Några exempel: Följande producerar en match: "grisar är en grupp av djur" = ~ /svin | får | ko /Här "gris" matchas. Det finns ingen "får" eller "ko" i det tillgängliga strängen.

Observera att i det tillgängliga strängen, är det uppsättning bokstäver, "p", "i" och "g" som matchas. Det är inte "svin" som matchas. Det finns ingen "s" efter "gris" i regex. "gris" är en sub-string bland alla tecken i tillgängliga sträng som matchas. Observera också att det inte är ett ord som matchas, men en sub-sträng (som består av tecken och kan även vara ett tecken). Notera också att utrymmet i den tillgängliga strängen är ett tecken, som kan vara medlem i en sträng sub sträng. Vad jag just har sagt, gäller för alla andra matchning, inte bara växlingen.

Följande ger en match: "får är en grupp av djur" = ~ /svin | får | ko /Här, "får" matchas. Det finns ingen "gris" eller "ko" i det tillgängliga strängen. Sökningen såg inte "pig", så det matchade "får" Följande ger en match: "kor är en grupp av djur" = ~ /svin | får | ko /Här "ko" matchas.

Page   <<  [1] [2] [3] [4] [5] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.