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

betterworld
 2004-09-02 02:05
#49807 #49807
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Am einfachsten waere es, wenn Du zunaechst mit s#/\*.*?\*/## und s#//.*## alle Kommentare aus dem String entfernst und dann mit dem Resultat arbeitest. Das koennte allerdings je nach Rahmenbedingung etwas ineffizient sein.

Ansonsten haette ich noch eine Moeglichkeit:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use strict;
use warnings;

my $c1 = '
/* Kommentar */

/* Noch
ein Kommentar XXX */
';

my $c2 = '
/* Kommentar */

XXX';

my $re = qr#^(?:(?!/\*).|/\*.*?\*/)*XXX#s;

print "XXX kommt in c1 vor\n" if $c1 =~ $re;
print "XXX kommt in c2 vor\n" if $c2 =~ $re;


Vielleicht sind da noch ein paar Bugs mit verschachtelten Kommentaren drin, ausserdem werden // -Kommentare nicht beruecksichtigt, aber das kriegst Du dann auch alleine hin.\n\n

<!--EDIT|betterworld|1094076355-->

View full thread C Datei parsen: An Regex-Experten