Thread C Datei parsen: An Regex-Experten (9 answers)
Opened by alexus-777 at 2004-09-01 22:42

Crian
 2004-09-02 03:37
#49808 #49808
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Und pass auf, früher war es ok, Kommentare durch nichts zu ersetzen, was dazu führte, dass man damit Quelltext zusammensetzen konnte. Heute gibt es dafür ein spezielles Makro (## falls ich mich richtig erinnere) und Kommentar wird durch ein Leerzeichen ersetz.

Edit: Und bedenke "Schweinereien" wie

Code: (dl )
1
2
 int  a = 3;    /* Dies ist /* ein Kommentar */
char b = '\n'; /* dies ist auch ein Kommentar */


Edit2: Ich würde mit Konstrukten wie

Code: (dl )
s~/\*(?:(?!\*/).)*\*/~~gs


bzw. in schöner

Code: (dl )
1
2
3
4
s~/\*            # Kommentar-Anfang
  (?:(?!\*/).)*  # Kommentar-Inneres
  \*/            # Kommentar-Ende
 ~~gsx


arbeiten.

Problematisch könnte es auch sein, wenn Kommentaranfang oder Ende irgendwo in konstanten Strings auftaucht. Genaugenommen müsstest Du darauf auch achten, aber dann brauchst Du bald einen echten Parser.\n\n

<!--EDIT|Crian|1094082603-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread C Datei parsen: An Regex-Experten