Thread Problem mit regex (6 answers)
Opened by krusty at 2007-01-30 15:23

krusty
 2007-01-30 15:23
#73834 #73834
User since
2006-01-27
91 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe wieder mal ein Problem mit einem regulären Ausdruck.

Finde den fehler nicht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
open(IN, "<$file") || die "Cannot open file $file!\n";
while(<IN>)
{
chomp;
if ( $_ =~ /^(.*)(Owner,No,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,
30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50)/ )
{
$_ = $2;
$gefunden = 1;
}
if ( $gefunden == 1 )
{
$_ = s/^,+//;
$_ = s/text\d+,//;
print $_."\n";
}
}
close(IN);


Die Datei enthält unter anderem folgende Zeilen:
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, > will ich mit $_ = s/^,+//; suchen und durch nichts ersetzen.
Dann gibt es viele Zeilen die folgendermaßen aufgebaut sind:
Text,text12345,text,text,text,,,,,,,,,,,,,,,,,,,,,,,,,,,,, > Hier will ich text12345 finden und durch nichts ersetzen. Siehe $_ = s/text\d+,//;. Jedoch funktioniert keines von beiden. Verstehe ich aber nicht. Muss dazu sagen, das es schon ein wenig her ist, seitdem ich Perl programmiert habe.
Habt ihr eine Idee/Vorschlag

View full thread Problem mit regex