iris: Suche mit Regex

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

  1. 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 Ausland

    Mehr ü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

    --
    Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|
    1. 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

      --
      Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|
      1. Hallo opi.

        oops, sorry, da ist ein Fehler im ersten open.

        Und in deinen [code]-Blöcken:

        Farbverfälschungen beim Text

        (Nein, der Text ist normalerweise nicht blau und nein, der Text in Formularelementen ist normalerweise nicht kursiv.)

        Einen schönen Donnerstag noch.

        Gruß, Ashura

        1. Farbverfälschungen beim Text

          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.

          1. Hallo Struppi.

            Besser spät als nie…

            http://download.noctus.net/gallery/caps/self_codeblock.jpg

            Oh, kann man dieses Stylesheet haben?

            Natürlich.

            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

            1. Besser spät als nie…

              Jo ;-)

              http://download.noctus.net/gallery/caps/self_codeblock.jpg

              Oh, kann man dieses Stylesheet haben?

              Natürlich.

              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.

              1. 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

        2. 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

          --
          Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|
          1. 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

            --
            Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|
            1. 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

      2. 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

        1. 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

          --
          Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|
  2. Hallo,

    äh, wie sieht dein Ansatz aus?

    gruss

    --
    no strict;
    no warnings;
    79.78 cups of Coffee (Brewed) + Me = Death
    Terrorific!