Calocybe: RegExpr klappt nicht

Beitrag lesen

Ich nehme mal an, dass manchmal auch Code mitgelöscht wird, oder nicht? Aufgrund deiner ungenauen Beschreibung kann ich das jetzt aber nicht so genau sagen.

So viel ich weis, musst ein Bindestrich escaped werden, da er ja in Klassen eingesetzt wird zB a-z findet alle Kleinbuchstaben des Alphabets, also :

Aber nur, wenn Du eckige Klammern drumherum schreibst, also [a-z]. Die Bindestriche machen hier also kein Problem.

$inhalt =~ s/<!--.*?-->//g;
funktioniert aber nicht immer.

Ich nehme an, "funktioniert nicht immer" bedeutet, dass Kommentare ueber mehrere Zeilen nicht entfernt werden? Sofern in $inhalt der gesamte Dateiinhalt und nicht nur eine Zeile steht, wuerde der Modifier /s helfen, damit der . auch auf einen Zeilenumbruch matcht. Siehe perldoc perlre.

Jedoch ist die Syntax von SGML-Kommentare etwas komplizierter als dass sie einfach mit <!-- anfangen und mit --> aufhoeren. In irgendeinem Perl-Modul hatte ich mal eine korrektere Variante des Kommentare-Entfernens gesehen, allerdings weiss ich jetzt leider nicht mehr, in welchem. Jedenfalls geht es darum, dass der Kommentar eigentlich schon nach dem zweiten -- zu Ende ist und mit einem weiteren -- nochmal anfangen kann. (Aber unter Vorbehalt, ist nur AFAIR. Verdammt, ich finde ums Verrecken den entsprechenden Thread im Archiv nicht wieder.)

So long

--
Bier trinken fetzt!!!