Hoe de Perl Array Grep () -functie te gebruiken

De Perl grep () functie is een filter dat een reguliere expressie op elk element van een array uitvoert en alleen de elementen retourneert die evalueren als waar. Het gebruik van reguliere expressies kan buitengewoon krachtig en complex zijn. De grep () -functies gebruiken de syntaxis @List = grep (Expression, @array).

De functie Grep () gebruiken om ware uitdrukkingen terug te geven

@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (/ ^ A /, @myNames);

Beschouw de @myNames-array als een rij genummerde vakken, van links naar rechts en genummerd beginnend met een nul. De functie grep () doorloopt elk van de elementen (vakken) in de array en vergelijkt hun inhoud met de reguliere expressie. Als het resultaat is waar, wordt de inhoud vervolgens toegevoegd aan de nieuwe @grepNames-array.

In het bovenstaande voorbeeld zoekt de reguliere expressie / ^ A / naar elke waarde die begint met een hoofdletter A. Na het doorzoeken van de inhoud van de @myNames-array, wordt de waarde van @grepNames ('Alexander', 'Andrew') de enige twee elementen die beginnen met een hoofdletter A.

instagram viewer

De uitdrukking omkeren in een Grep () -functie

Een snelle manier om deze specifieke functie krachtiger te maken, is door de reguliere expressie om te keren met de NOT-operator. De reguliere expressie zoekt dan naar elementen die naar evalueren false en verplaatst ze naar de nieuwe array.

@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (! / ^ A /, @myNames);

In het bovenstaande voorbeeld zoekt de reguliere expressie naar een waarde die niet begint met een hoofdletter A. Na het doorzoeken van de inhoud van de @myNames-array, wordt de waarde van @grepNames ('Jacob', 'Michael', 'Joshua', 'Matthew').

Over Perl

Perl is een aanpasbare programmeertaal die vaak wordt gebruikt om webapplicaties te ontwikkelen. Perl is een geïnterpreteerde, niet gecompileerde taal, dus de programma's nemen meer CPU-tijd in beslag dan een gecompileerde taal - een probleem dat minder belangrijk wordt naarmate de snelheid van processors toeneemt. Schrijven in Perl is echter sneller dan schrijven in een gecompileerde taal, dus u bespaart tijd.

instagram story viewer