Thread RegEx mit bedingter Ersetzung (11 answers)
Opened by micha2 at 2023-07-09 13:44

haj
 2023-07-09 23:31
#195130 #195130
User since
2015-01-07
531 Artikel
BenutzerIn

user image
2023-07-09T18:49:58 micha2
Das sind meine ersten Versuche mit
Perl. Und mit RegEx habe ich auch noch wenig Erfahrung.
Dann empfehle ich, von Einzeilern mit -pe-Switches die Finger zu lassen. So wie der Code hier steht, eignet er sich eher für einen Verschwurbelungswettbewerb als für eine Lösung des Problems.

Wenn Du reguläre Ausdrücke mit dem Suffix /e verwendest, dann wird der "Ersetzungsteil" ausgeführt und dessen Ergebnis ist der Ersetzungstext. Daher kommen die Nuller: Das ist das Ergebnis Deines Ersetzungsteils.

Das ganze hat nichts mit regulären Ausdrücken zu tun sondern mit dem Perl-Code im Ersetzungsteil: Der muss den kompletten Ersetzungstext aufbauen und als Ergebnis des letzten Statements zurückliefern. Ich habe den Verdacht, Du hättest erwartet, dass das Resultat jedes einzelnen Statements in der Ausgabe erscheint, aber so funktioniert Perl nicht.

Ein print innerhalb des Ersetzungsteils ist auch verdächtig, wenn mit einer perl -p-Schleife gearbeitet wird.

View full thread RegEx mit bedingter Ersetzung