Split


Velmi u₧iteΦnou funkcφ v perlu je funkce split, kterß rozd∞luje °et∞zec na jednotlivΘ Φßsti a uklßdß jednotlivΘ Φßsti do prvk∙ pole. Tato funkce pou₧φvß regulßrnφ v²raz a implicitn∞ pracuje s prom∞nnou $_.

P°φklad pou₧itφ funkce split:

$info = "Jana:Michal:Ale:14, dlouha cesta";
@personal = split(/:/, $info);
V²sledek funkce split je pole @personal s obsahem
@personal = ("Jana", "Michal", "Ale", "14, dlouha cesta");
Pokud jsou informace ulo₧eny v prom∞nnΘ $_ pou₧ijeme p°φkaz
@personal = split(/:/);

Pokud jsou pole odd∞lenß vφcenßsobn²m znakem :, m∙₧eme ve funkci split pou₧φt RE. P°φklad:

$_ = "prvni:dalsi::druhy prvek:::posledni polozka";
@personal = split(/:+/);
v²sledek je
@personal = ("prvni", "dalsi"
             "druhy prvek", "posledni polozka");
Ale:
$_ = "prvni:dalsi::druhy prvek:::posledni polozka";
@personal = split(/:/);
dßvß v²sledek
@personal = ("prvni", "dalsi" "",
             "druhy prvek", "", "", "posledni polozka");

Slovo m∙₧e b²t rozd∞leno na znaky, v∞ta na slova a odstavec na v∞ty:

@chars = split(//, $word);
@words = split(/ /, $sentence);
@sentences = split(/\./, $paragraph);
V prvnφm p°φpad∞ je prßzdn² °et∞zec porovnßvßn s prvkem mezi znaky, proto pole @chars obsahuje jednotlivΘ znaky tj. °et∞zce o dΘlce 1.


CviΦenφ

Upravte poslednφ verzi programu tak, aby v souboru ceskywww.txt vyhledal °ßdky obsahujφcφ °et∞zec "http:" nap°.(http://web.cvut.cz/ascii/cc/icsc/software). Na t∞chto °ßdcφch pak rozd∞lte °et∞zec nßsledujφcφ bezprost°edn∞ za http: na jednotlivΘ Φßsti, odd∞lovacφm znakem je lomφtko. VypiÜte °et∞zec za // do dalÜφho / tj. jmΘno poΦφtaΦe. P°edpoklßdejte, ₧e °et∞zec "http:" se m∙₧e vyskytnout na °ßdku n∞kolikrßt.
jmeno pocitace = web.cvut.cz

Jedno z mo₧n²ch °eÜenφ.


DalÜφ kapitola | P°edchozφ kapitola kapitola | Obsah

PEGASNETPEGASNET

PEGASNETPEGASNET

PEGASNETPEGASNET

PEGASNETPEGASNET