Suche mit Regex
iris
- perl
Hallo an alle,
habe ein problemm und zwar,
ich suche in ein datei mittels regex nach bestimmte vorkomnisse und markiere sie wenn sie gefunden werden.
bsp:
open(FILE2, "<input.txt")|| die "could not open file";
while (<FILE2>){
$_ =~ s/(SuchString)/<mark>$1</mark>/gi;
}
wo weit funktioniert das ganze OK.
Ich möchte es so erweitern dass ich den Suchstring aus einer andere Datei lese und jedes eintrag in diesem datei als suchstring verwende.
bsp datei_einträge.txt
hat folgende struktur:
Arbeit
Im Ausland
Mehr über uns erfahren Sie morgen
Aktuell
...usw
Jeder dieser Einträge möchte ich als SuchString in unseren text verwenden und bei treffer einfach den treffen markieren.
Leider funktioniert die schleife für diese suche bei mir nicht.
Ich bitte Sie deshalb um Ihre Hilfe, wie schaut eine Lösung aus?
Danke, Gruss, IRIS
Hallo,
ich suche in ein datei mittels regex nach bestimmte vorkomnisse und markiere sie wenn sie gefunden werden.
bsp:
open(FILE2, "<input.txt")|| die "could not open file";
while (<FILE2>){$_ =~ s/(SuchString)/<mark>$1</mark>/gi;
}
wo weit funktioniert das ganze OK.
Ich möchte es so erweitern dass ich den Suchstring aus einer andere Datei lese und jedes eintrag in diesem datei als suchstring verwende.
bsp datei_einträge.txt
hat folgende struktur:
Arbeit
Im AuslandMehr über uns erfahren Sie morgen
Aktuell
...usw
Meinst du sowas ...
Datei ./searchstring:
simpler
dies
Datei ./inputfile
dies ist ein simpler test
dies ist ein simpler test
dies ist ein simpler test
open(FILE_A,'<./searchstrings#);
my $search = [ <FILE_A> ];
chomp for @$search;
close(FILE_A);
open(FILE_B,'<$inputfile');
while (my $line = <FILE_B>) {
$line =~ s/($_)/<mark>$1<\/mark>/gi for @$search;
print $line;
}
close(FILE_B);
Ausgabe:
<mark>dies</mark> ist ein <mark>simpler</mark> test
<mark>dies</mark> ist ein <mark>simpler</mark> test
<mark>dies</mark> ist ein <mark>simpler</mark> test
Greez,
opi
Hallo,
oops, sorry, da ist ein Fehler im ersten open.
open(FILE_A,'<./searchstrings#);
> my $search = [ <FILE_A> ];
> chomp for @$search;
> close(FILE_A);
>
> open(FILE_B,'<$inputfile');
> while (my $line = <FILE_B>) {
> $line =~ s/($_)/<mark>$1<\/mark>/gi for @$search;
> print $line;
> }
> close(FILE_B);
>
open(FILE_A,'<./searchstring');
my $search = [ <FILE_A> ];
chomp for @$search;
close(FILE_A);
open(FILE_B,'<inputfile');
while (my $line = <FILE_B>) {
$line =~ s/($_)/<mark>$1<\/mark>/gi for @$search;
print $line;
}
close(FILE_B);
Greez,
opi
Hallo opi.
oops, sorry, da ist ein Fehler im ersten open.
Und in deinen [code]-Blöcken:
(Nein, der Text ist normalerweise nicht blau und nein, der Text in Formularelementen ist normalerweise nicht kursiv.)
Einen schönen Donnerstag noch.
Gruß, Ashura
Oh, kann man dieses Stylesheet haben?
und was sind das für nützliche Buttons?
(ich vermute ein JS und ich vermute ich habe einen Thread über Benutzereinstellungen nicht gründlich mitgelesen)
Struppi.
Hallo Struppi.
Besser spät als nie…
http://download.noctus.net/gallery/caps/self_codeblock.jpg
Oh, kann man dieses Stylesheet haben?
und was sind das für nützliche Buttons?
(ich vermute ein JS und ich vermute ich habe einen Thread über Benutzereinstellungen nicht gründlich mitgelesen)
Ein paar meiner Funktionen habe ich hier schon veröffentlicht, die Idee mit den Buttons stammt von Jeena.
Aber wenn du dich dennoch mit meinem Script herum schlagen willst, kannst du es hier (I know, „Don't say ‚click here‘…“) finden. (Auch mit Kommentaren.)
Einen schönen Freitag noch.
Gruß, Ashura
Besser spät als nie…
Jo ;-)
http://download.noctus.net/gallery/caps/self_codeblock.jpg
Oh, kann man dieses Stylesheet haben?
Soweit so gut, was mich aber wundert, das CSS ist stark für FF gebaut, aber ...
Aber wenn du dich dennoch mit meinem Script herum schlagen willst, kannst du es hier (I know, „Don't say ‚click here‘…“) finden. (Auch mit Kommentaren.)
.. die Buttons scheinen nur mit dem IE zu funktioneren (document.selection kennt mein FF nicht)
Ob ich mich an das CSS gewöhne weiß ich noch nicht, muss ich mir mal angucken ich hab natürlich auch das Problem das ich auf der Arbeit mit dem IE 4.0 surfe, da muss dann noch ein @import rein.
Aber das Skript schau mich mir mal genauer an.
Struppi.
Hallo Struppi.
Soweit so gut, was mich aber wundert, das CSS ist stark für FF gebaut, aber ...
[…]
.. die Buttons scheinen nur mit dem IE zu funktioneren (document.selection kennt mein FF nicht)
Nö, du hast Opera vergessen.
Dieser kann beides; moderne Regelsets und document.selection.
Für Fx gibt es eine Alternativlösung, welche ich aber entfernt habe, da ich mit diesem hier so gut wie nie unterwegs bin.
Aber das Skript schau mich mir mal genauer an.
Tu dir keinen Zwang an; wenn es Fragen gibt helfe ich gern.
Einen schönen Freitag noch.
Gruß, Ashura
Hallo Ashura,
(Nein, der Text ist normalerweise nicht blau und nein, der Text in Formularelementen ist normalerweise nicht kursiv.)
das verstehe ich jetzt nicht. Was habe ich falsch gemacht und wie
kann ich es richtig machen?
Greez,
opi
Hallo Ashura,
jetzt habe ich verstanden was du meinst. Die Auflistung der weiteren
Threads wird bei mir in lila und kursiv dargestellt. Aber das sehe
ich nicht nur als einen Fehler in meinen Codeblöcken. Sowas kann man
auch als Bug im Forum bezeichnen :-)
Jetzt ernte ich hoffentlich keine bösen Zungen...
Greez,
opi
Hallo opi.
Die Auflistung der weiteren
Threads wird bei mir in lila und kursiv dargestellt. Aber das sehe
ich nicht nur als einen Fehler in meinen Codeblöcken. Sowas kann man
auch als Bug im Forum bezeichnen :-)
Ja, auch.
Jetzt ernte ich hoffentlich keine bösen Zungen...
Wenn du sie sähst…
Einen schönen Freitag noch.
Gruß, Ashura
open(FILE_A,'<./searchstring');
my $search = [ <FILE_A> ];
chomp for @$search;
close(FILE_A);
bis hier richtig.
zweite datei
habe ich in einem array gespeichert
also das array hat die form
@array = ("wort1","wort2","wort bla bla","usw andere wörter");
forach (@array)
[prüfe ob ein searchstring exsistiert, wenn ja marikiere]
wie mache ich das?
Also deine obere Lösung hat bei mir nicht funktioniert? Der Script ist in einen unendlichen Schleife geraten...
Danke für die Bemühung,
Gruss, Iris
open(FILE_B,'<inputfile');
while (my $line = <FILE_B>) {
$line =~ s/($_)/<mark>$1</mark>/gi for @$search;
print $line;
}
close(FILE_B);
[/code]Greez,
opi
Hallo,
zweite datei
habe ich in einem array gespeichert
also das array hat die form
open(FILE_A,'<./searchstring');
my $search = [ <FILE_A> ];
chomp for @$search;
close(FILE_A);
my $lines = [ "dies ist ein simpler test", "dies ist ein simpler test", "dies ist ein simpler test" ];
foreach my $line (@$lines) {
$line =~ s/($_)/<mark>$1</mark>/gi for @$search;
print $line ."\n";
}
Greez,
opi
Hallo,
äh, wie sieht dein Ansatz aus?
gruss