Schrift
[thread]8804[/thread]

Quantifier follows nothing in regex?

Leser: 3


<< >> 3 Einträge, 1 Seite
Gast Gast
 2007-03-01 18:41
#74746 #74746
hi,
ich wollte mir ein script schreiben was in einer liste begriffe rausnimmt und in einer 2. überprüft in welcher zeile sie vorhanden sind (und diese in eine andere datei schreibt)

nur leider bekomme ich immer den fehler:
Code: (dl )
1
2
Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE **SVS***
/ at temp.pl line 13.


wo liegt das problem? meiner meinung nach ist da alles richtig O.o?

Der CODE:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
open(INO,"old.txt");
my @ino = <INO>;
close(INO);
open(INN,"new.txt");
my @inn = <INN>;
close(INN);

my @out;
for (my $line=0; $line < @inn; $line++) {
my $readline = $inn[$line];
chomp ($readline);
foreach $old(@ino){
if($old =~ /$readline/){ push @out,$old; };
}
}
open(OUT,">filterd.txt");
foreach $_(@out){print OUT "$_";};
close(OUT);


danke

Gruß
renee
 2007-03-01 18:52
#74747 #74747
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach aus
Code: (dl )
$old =~ /$readline/
das hier
Code: (dl )
$old =~ /\Q$readline\E/


Damit werden (RegEx-)Sonderzeichen, die in $readline stehen escaped...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
betterworld
 2007-03-01 18:55
#74748 #74748
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Regulaere Ausdruecke sind eben regulaere Ausdruecke. Wenn Du einen String vom Benutzer einliest und in einen Regex einbettest, wird es auch als Regex behandelt. Siehe "DON'T" in perlcheat.
Entweder:
Code: (dl )
/\Q$readline\E/

oder einfach:
Code: (dl )
index($old, $readline) >= 0


Ausserdem solltest Du unbedingt die Rueckgabewerte von open ueberpruefen, und wenn Du gegen volle Platten gefeit sein willst, auch die von print und close.\n\n

<!--EDIT|betterworld|1172768232-->
<< >> 3 Einträge, 1 Seite



View all threads created 2007-03-01 18:41.