Schrift
[thread]6831[/thread]

Regex: n-tes vorkommen ersetzen



<< >> 2 Einträge, 1 Seite
west
 2005-04-01 12:26
#53138 #53138
User since
2005-02-21
4 Artikel
BenutzerIn
[default_avatar]
Hallo

Ich habe ein problem mit regex. Ich möchte in einem scripfile parametern zu gewissen keywords ersetzen. Da manche keywords mehrmals vorkommen muss ich eine regex bauen, die einen parameter zum n-ten vorkommen dieses keywords ersetzen kann. Ich habe für jedes ersetzen die informationen, wie das keyword heisst (z.b. "DOSOMETHING"), das wievielte keyword dieses typs es ist (z.b. das 2. "DOSOMETHING"), und die nummer des parameters der zu ersetzen ist (z.b. der dritte parameter).
Hat jemand eine gute Idee, die funtionieren könnte?

Die Datei is etwa so aufgebaut:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
[LOGIN("param1","param2","paramn")]
0
[DOSOMETHING("param1","param2","paramn")]
0
[DOSOMETHING("param1","param2","paramn")]
0
[DOSOMETHINGELSE("param1","param2","paramn")]
0
[LOGOUT()
0
Ishka
 2005-04-01 13:56
#53139 #53139
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
So zum Beispiel:
Code: (dl )
1
2
3
4
5
my @ersetzen_mit=("hallo","welt");
my $string="xyz xyz!";
my $n=0;
$string=~s#xyz#$ersetzen_mit[$i++]#ge;
print $string;
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
<< >> 2 Einträge, 1 Seite



View all threads created 2005-04-01 12:26.