Suchscript sucht nicht richtig ...
Marcus Vieß
- perl
0 Marcus Vieß0 Marcus Vieß0 Klaus Mock0 Mario
0 Matti Maekitalo
open (FH, "$searchdata");
while(my $search = <FH>){ #Zeilenweise einlesen
if ($search =~ m/$such/g) { #Suchen nach dem Wort: und
print "<font size=+2>$search<br>";
}
}
close(FH);
Datafile sieht z.B. so aus :
...
<a href="http://www.blutsdvdpage.de/ab18/cgi-bin/review.cgi?zombieholocaust"><font size=+1>Zombie Holocaust</a>
<a href="http://www.blutsdvdpage.de/ab18/cgi-bin/review.cgi?woodoo"><font size=+1>Woodoo - Schreckensinsel der Zombies</a>
<a href="http://www.blutsdvdpage.de/ab18/cgi-bin/review.cgi?zombie3"><font size=+1>Zombie 3</a>
<a href="http://www.blutsdvdpage.de/ab18/cgi-bin/review.cgi?hausanderfriedhofsmauer"><font size=+1>Haus an der Friedhofsmauer</a>
<a href="http://www.blutsdvdpage.de/ab18/cgi-bin/review.cgi?grossangriffderzombies"><font size=+1>Großangriff der Zombies</a>
...
So, finden tut das script jetzt
Zombie 3
Zombie Holocaust
Großangriff der Zombies
aber halt nicht Woodoo - Schreckensinsel der Zombies.
Versteh ich nicht ...
Zur Info:
Suchen tu ich nach "Zombie" ...
Mhhh ich hab mal rumexperimentiert.
wenn ich nach "zombie" suche findet er halt nur die drei.
Bei "Zombie" klappts.
um "Woodoo - Schreckensinsel der Zombies" zu finden müsste er quasi Groß- Kleinschreibung ersetzen und das "s" am ende.
Macht er nicht, sondern anscheinend nur eine fehlende Sache.
Wie bekomme ich Ihn dazu das er beides ersetzt.
oder hab ich nen anderen Fehler drin ?
Hallo,
wenn ich nach "zombie" suche findet er halt nur die drei.
weil bei diesen dreien 'zombie' im URL vorkommt, beim vierten aber nicht.
um "Woodoo - Schreckensinsel der Zombies" zu finden müsste er quasi Groß- Kleinschreibung ersetzen und das "s" am ende.
if ($search =~ m/$such/g) { #Suchen nach dem Wort: und
Du verwendest den Option 'g' für die Suche, obwohl das in diesem Falle nicht notwengig ist, sondern die Suche nur langsamer macht.
Wenn Du die Groß-Kleinschreibung ignorieren willst, dann kannst Du das mit der Option 'i' machen.
siehe auch http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm#flags bzw. http://www.perldoc.com/perl5.8.0/pod/perlop.html#Regexp-Quote-Like-Operators
Grüße
Klaus
Guten Morgen :)
Ich hab zwar keinen Plan von Perl, aber in den meisten Sprachen gibts doch funktionen, um Teilstring in einem String suchen zu lassen, in Perl doch sicher auch, oder? Verknüpft mit dem Ignorieren von Groß- und Kleinschreibung dürfte das zu dem gewünschten Ergebnis führen ... kannst ja zusätzlich Optionen für die Suche verwenden, z.B. angeben lassen, ob nur ein ganzes Wort gesucht werden soll, Groß- und Kleinschreibung ignorieren, etc. ...
Grüße, Mario
use Mosche;
Begrüssungen werden hier gerne gesehen.
if ($search =~ m/$such/g) { #Suchen nach dem Wort: und
Du brauchst hier nicht den modifier g (der ist notwendig bei ersetzungen und wenn du Dinge mehr als einmal finden willst und sie noch zwischenspeicherst. Was du willst ist 'i', welches Groß/Kleinschreibung ignoriert.
use Tschoe qw(Matti);
Verabschiedungen auch.