Zum Inhalt springen

[Perl] -- Regex zum entfernen von POD-Kommentaren


Empfohlene Beiträge

Wir brauchen für statistische Überprüfungen unseres Perl-Codes die Möglichkeit, pod-Kommentare zu entfernen und durch die gleiche Anzahl an Newlines zu ersetzen.

Wir haben also den String $code und der sieht so aus:

sub foo { return 'bar' };

=head 

POD-Kommentar

=cut

sub bar { return 'foobar' };
Hier müssen wir jetzt den gesamten POD-Kommentar entfernen, so, dass aus dem Skript
sub foo { return 'bar' };




sub bar { return 'foobar' };
wird. Warum? Um z.B. "dieses Modul wird mit 'use Modul;' eingebunden..." nicht in die "dieses Modul nutzt dies und das"-Statistiken mitzunehmen. Ich hatte dazu auf die Schnelle diesen Regex hier entwickelt:
$code =~ s#(?:\R|^)(?:=.+?)\R=cut(?:\R|$)#"\n"x((${^MATCH}=~tr{\n|\r}{}))#segp;
Nur leider funktioniert er nicht ganz bei Kommentaren mit mehreren Überschriften. Wenn wir also
sub foo { return 'bar' };

=head

POD-Kommentar 

=head2

POD-Kommentar 2

=cut

sub bar { return 'foobar' };
haben, würde diese Regex daraus nur
sub foo { return 'bar' };

=head

POD-Kommentar 




sub bar { return 'foobar' };

machen. Wie kann man sowas als Regex realisieren? Einen extra Parser dafür möchte ich nicht schreiben und wir können auch PPI usw. nicht benutzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Auch wenn ich etwas länger gebraucht habe, um Deinen Regex verstehen zu können, kann ich darin keinen Fehler entdecken. Dein Beispiel funktioniert bei mir (Ubuntu, Perl 5.14.2) entsprechend einwandfrei:

sub foo { return 'bar' };






sub bar { return 'foobar' };

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...