reguljära uttryck i Perl för nybörjare - Del 3 Inledning Detta är den tredje delen av min serie, reguljära uttryck i Perl för nybörjare. I denna del av serien, fortsätter vi att analysera mönster i Perl Regular Expressions. Matcha repetitioner i den tillgängliga strängen, kan tecken eller grupper av tecken upprepa sig. Vi ska tala om grupper av tecken, som ett ämne senare. För nu, låt oss koncentrera oss på enstaka tecken upprepar sig. Det finns Kvantifieraren metatecken som tillåter oss att matcha upprepning av enstaka tecken eller grupper av tecken i det tillgängliga strängen.
Dessa metatecken är:?, *, +, Och {}. De tillåter oss att fatta beslut om antalet upprepningar vi söker. Kvantifierare sätts omedelbart efter tecken, tecken klass eller grupp (se nedan) i regex. Här är de med sina betydelser, där x hänvisar till en särskild karaktär: x *: betyder match "x" 0 eller flera gånger, det vill säga många gånger som helst x +: betyder match "x" 1 eller flera gånger, det vill säga, åtminstone gång x? : Betyder match "x" 0 eller 1 gånger x {n,}: betyder match "x" åtminstone n eller flera gånger; Observera kommatecknet.
x {n}: match "x" exakt n gånger x {n, m}: match "x" minst n gånger, men inte mer än m gånger. Obs: bokstaven "x" ovan står för alla tecken av en text, t.ex. "b", "c", "d", "1", "2", etc. kvalet skrivs inuti ett mönster (regex). Exempel * Matchar det föregående objektet 0 eller fler gånger. /o * /matcher "o" i "ghost" av den tillgängliga strängen "Ett spöke booooed". Det skulle också matcha "oooo" i tillgängliga strängen. För att ge regex mer vilket innebär att du måste kombinera det med andra karaktärer.
Till exempel /Bo * /matcher "boooo" i "Ett spöke booooed" och "b" i "En fågel kvittrade", men inget i "En get grymtade", även om det sista strängen har ett "o". + Matchar det föregående objektet 1 eller flera gånger. Motsvarar {1,} - se nedan. /a + /matchar "ett" i "candy" och alla aen i "caaaaaaandy". ? Matchar det föregående objektet 0 eller en tid. /e? le? /matchar "el" i "ängel" och "le" i "vinkel.". /e? le? /medel, har du ett ord som har "l" eventuellt föregånget av "e" och eventuellt följt av "e". Detta innebär, kommer det också att matcha, "liggande".
Vid tiden du är klar här serien, kommer du att veta hur du redigerar regex, att begränsa den för att matcha bara "ängel" eller "vinkel". {n,} där n är ett positivt heltal. Detta matchar åtminstone n förekomster av föregående punkt. Till exempel /a {2,} matchar inte "ett" i "godis", me