Thread Hilfe zu Regex (8 answers)
Opened by rooney10 at 2011-03-22 16:43

rosti
 2011-03-22 17:11
#146793 #146793
User since
2011-03-19
3475 Artikel
BenutzerIn
[Homepage]
user image
2011-03-22T15:43:03 rooney10
Gibt es hierfür eine bessere Lösung, welche mir immer genau den Dateinamen findet?


Kommt daruf an. Wenn sicher ist, dass das, was Du finden willst, immer zwischen {Schweifies} steht, könntest Du einen Parser schreiben, der zeichenweise (read in 1-byte-Schritten) durch die Datei geht.
- Bei "{" Tag auf,
- inhalte auf einen Puffer legen
- bei "}" Tag zu, Puffer auf ein Array pushen.

--Rolf

Edit:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use strict;

my ($buffer, $tag) = ('',0);
my @res = ();

while(read DATA, my $c, 1){
if($c eq '{'){
$tag = 1;
$buffer .= $c if $c ne '{';
}
$buffer .= $c if($tag && $c ne '{' && $c ne '}');
if($c eq '}'){
push @res, $buffer;
$tag = 0;
$buffer = '';
}
}

print join "\n", @res;

__END__

Hier steht was {irgendwas} und {wieder was} und
in einer neuen Zeile steht {nochwas}. Das wars.

Last edited: 2011-03-22 17:33:59 +0100 (CET)

View full thread Hilfe zu Regex