Thread /String+/ ersetzen mit String2 für alle /String+/ (11 answers)
Opened by PerlProfi at 2006-12-03 19:54

PerlProfi
 2006-12-03 19:54
#72215 #72215
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Ich habe einen langen String, der zum Beispiel so aussehen kann:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$r->vor;
$r->vor;
$r->vor;
$r->drehe_rechts;
$r->vor;
$r->vor;
$r->drehe_links;
$r->vor;
$r->vor;
$r->vor;
$r->vor;
$r->vor;
drehe_um;
$r->vor;


Jetzt würde ich gerne alle '$r->vor;\n', die mindestens 2 mal hintereinander vorkommen mit 'vor(', der Anzahl von '$r->vor;\n' hintereinander, und ');\n' ersetzen.

So dass obiger String nachher so aussieht:
Code: (dl )
1
2
3
4
5
6
7
vor(3);
$r->drehe_rechts;
vor(2);
$r->drehe_links;
vor(5);
drehe_um;
$r->vor;


Wie kann man das machen?

Mein erster Ansatz war:
Code: (dl )
$string =~ s/(\$r->vor\;\n)+/vor\(ANZ\)\;\n/g;

Nur weiß ich nicht was anstelle von ANZ kommen muss.

MfG PerlProfi\n\n

<!--EDIT|PerlProfi|1165168579-->

View full thread /String+/ ersetzen mit String2 für alle /String+/