Portál AbcLinuxu, 13. května 2025 21:50
$cislosmajlu = "---:3434: dasdas :2343:dasd a :5678:adasd dsadas:43587:aaaaaaa:23456879:";
if ($cislosmajlu =~ /(:([0-9]+):)+/) { print $1 ;}
Řešení dotazu:
Kdyžtak toto:
$cislosmajlu = "---:3434: dasdas :2343:dasd a :5678:adasd dsadas:43587:aaaaaaa:23456879:";
map {print "$_\n"} grep {m/[0-9]+/} split(':', $cislosmajlu);
$cislosmajlu = "---:3434: dasdas :2343:dasd a :5678:adasd dsadas:43587:aaaaaaa:23456879:";
while ( $cislosmajlu =~ /(:([0-9]+):)+/g ) { print $1 ;}
my $cislo_smajlu
= "---:3434: dasdas :2343:dasd a :5678:adasd dsadas:43587:aaaaaaa:23456879:";
foreach my $cislo (
$cislo_smajlu =~ m/(?: :( [0-9]+ ): )+/xg
) {
print "$cislo ";
}
m/:( [0-9]+ ):/xg
m
je tam více méně zbytečný, muselo by tam být v případě např:
m{ :( [0-9]+ ): }xg
x
umožňuje (pro přehlednost) vkládat do regulárního výrazu mezery a g
je "global" tedy najdi všechny výrazy nejen první
@smajly = (text =~ /:([0-9]+):/g);
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.