7 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/perl
# vi:ts=4 sw=4 et:
use strict;
use warnings;
#> global variables
#> ----------------------------------------------------------------------------
use vars qw( $str $what $for $pos $last $cnt );
$str = 'aasdf asdlfa dasf'; # welcher string soll bearbeitet werden
$what = 'a'; # was suchen wir
$for = 'xxx'; # womit wollen wir es ersetzen
$pos = 2; # das wievielte auftauchen soll ersetzt werden
#> main script
#> ----------------------------------------------------------------------------
( $last, $cnt ) = ( 0, 0 ); # initialisiere counter
# solange wir das gesuchte finden
while ( $last > -1 ) {
# ermittle position(en) des gesuchten
$last = index($str, $what, $last);
# ende der schleife, wenn nix mehr gefunden;
# oder erhoehe den trefferzaehler
$last == -1 ? last : $cnt++;
# ersetze in $str das auftreten von $what mit $for
# wenn die gezaehlten treffer $cnt der gewuenschten anzahl $pos
# entsprechen
substr($str, $last, length($what), $for) if ( $cnt == $pos );
$last++;
}
print $str, $/;
$text =~ s/a/$neu/ for 1,2,3;
1
2
3
4
5
my $count = 0;
while ($text =~ m{(a)}g) {
substr($text, $-[0], $+[0]-$-[0], "XX");
last if ++$count >= 3;
}
1
2
3
4
5
6
7
8
9
my $count = 0;
my $text = 'aeuaeueauaeuau';
my $search = 'a';
my $replace = 'XX';
while ($text =~ m{\Q$search}g) {
substr($text, pos($text)-length($search), length($search), $replace);
last if ++$count >= 3;
}
print "$text\n";
s~(?:^[^a]*a[^a]*)a~$1b~;
s~(?:^[^a]*(?:a[^a]*){2}a~$1b~;
7 Einträge, 1 Seite |