Om det inte fanns några matcher på den första positionen, skulle Perl flytta till andra teckenposition "2" och försök matchen om igen. Perl ger upp och förklarar "12345" = ~ /(124 | 123) (46 | 4 | 45) /för att vara falsk, först när alla möjliga vägar på alla möjliga teckenpositioner har uttömts. X Modifier Detaljer modifierings ställs in genom att sätta x (med små bokstäver) precis bredvid andra snedstreck på regex. Det är: /mönster /x Wwhitespace datatecken i mönstret är helt ignoreras utom när rymt eller inuti en teckenklass, när denna modifierings är inställd.
När denna modifierings är inställd, tecken mellan ett okodat # utanför en teckenklass och nästa \\ n tecken, inklusive, ignoreras också. Jag kommer att illustrera allt detta. Den säger blankdatatecken i mönstret är helt ignoreras utom när rymt eller inuti en teckenklass. Tänk på tillgängliga sträng: $ availableString = "Jag är en man som satt ner."; Följande två uttryck med x modifierings inte producera en match. $ availableString = ~ /man sitter ner /x Detta beror i regex, samlade-utrymmena mellan "man" och "sitter" och "sitter" och "ned" inte erkänns, med närvaro av x modifierings.
Om du tar bort dessa motsvarande utrymmen i den tillgängliga sträng du kommer att ha en match med x modifierings. Följande finns strängen kommer att producera en match med ovanstående regex: $ availableString = "Jag är en mansittingdown."; Om du vill ha den ursprungliga tillgängliga sträng och regex att matcha, då måste man fly utrymmen i regex. Följande uttryck producerar en match med den ursprungliga tillgängliga sträng: $ availableString = ~ /man \\ sitter \\ ner /x En flydde enda blanksteg är "\\". Låt oss nu tala om vitt utrymme i en teckenklass.
Observera att mellanslag är faktiskt [\\ \\ t \\ r \\ n \\ f], inte bara "\\". Men låt oss fortsätta vår illustration med "\\". Vi använder samma snöre, det vill säga: $ availableString =; "Jag är en man som satt ner." Om vi vill matcha utrymmet framför sammanträde, följt av "sitter", med x modif