Kuinka käyttää Perl-taulukon grep () -toimintoa

Perl grep () -toiminto on suodatin, joka suorittaa säännöllisen lausekkeen jokaisessa taulukon elementissä ja palauttaa vain ne elementit, jotka arvioivat totta. Säännöllisten lausekkeiden käyttö voi olla erittäin tehokasta ja monimutkaista. Grep () -toiminnot käyttävät syntaksia @List = grep (lauseke, @array).

Grep () -toiminnon käyttäminen oikeiden lausekkeiden palauttamiseksi

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

Ajattele @myNames-taulukkoa numeroitujen ruutujen rivinä, joka kulkee vasemmalta oikealle ja numeroidaan nollasta alkaen. Grep () -funktio käy läpi jokaisen taulukon elementin (ruudun) ja vertaa niiden sisältöä säännölliseen lausekkeeseen. Jos tulos on totta, sisältö lisätään sitten uuteen @grepNames-taulukkoon.

Yllä olevassa esimerkissä säännöllinen lauseke / ^ A / etsii arvoa, joka alkaa kirjaimella A. Kun olet seulonut @myNames-taulukon sisällön, @grepNames-arvosta tulee ('Alexander', 'Andrew'), jotka ovat ainoat kaksi elementtiä, jotka alkavat kirjaimella A.

instagram viewer

Lausekkeen kääntäminen grep () -toiminnossa

Yksi nopea tapa tehdä tästä toiminnosta tehokkaampi on kääntää säännöllinen lauseke NOT-operaattorin kanssa. Säännöllinen lauseke etsii sitten elementtejä, jotka arvioivat väärä ja siirtää ne uuteen ryhmään.

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

Yllä olevassa esimerkissä säännöllinen lauseke etsii arvoa, joka ei ala A-kirjaimella A. Seulottuaan @myNames-taulukon sisällön, @grepNames-arvosta tulee ('Jacob', 'Michael', 'Joshua', 'Matthew').

Tietoa henkilöstä Perl

Perl on mukautuva ohjelmointikieli, jota käytetään usein web-sovellusten kehittämiseen. Perl on tulkittu, ei käännetty kieli, joten sen ohjelmat vievät enemmän suorittimen aikaa kuin käännetty kieli - ongelma, josta tulee vähemmän tärkeä prosessorien nopeuden kasvaessa. Perlissa kirjoittaminen on kuitenkin nopeampaa kuin käännetyllä kielellä kirjoittaminen, joten säästät aikaasi.