[linux] Re: Regex vinden

Geert Stappers stappers op stappers.nl
Wo Apr 16 12:35:10 CEST 2008


Op 16-04-2008 om 11:52 schreef Hugo van der Kooij:
[ file met regex terug vinden ]
> Dat dacht ik als volgt te doen:
> 
> open(STRINGS,"<$strings");
> open(TEXT,"<$text");
> 
> while ($line = <TEXT>) {
>         chomp($line);
>         $match = 0;
>         while ($pattern = <STRINGS>) {
>                 chomp($pattern);
>                 $pattern_check = "/" . $pattern . "/";

Mijn gevoel zegt dat het daar misgaat.

>                 if ($line =~ $pattern_check) {

Of anders daar.

>                         print "Match found!\n\t$line\n\tMATCHES: $pattern\n";
>                         $match = 1;
>                 }
>         }
>         if ($match < 1) {
>                 print "\t$line\n";
>         }
> }
> close(STRINGS);
> close(TEXT);


Toelichting van m'n gevoel:
Je wilt  '/gezocht/' met '/' en '/' als perl instructie "match",
maar je maakt "/gezocht/" waarbij beide slashes onderdeel van de string
zijn. (Dus geen perl instructie )

Mogelijke oplossing:
Een tweetrapsraket methode:
Eerst een programma draaien wat het tweede programma aanmaakt.

trap een maakt van 
                if ($line =~ $pattern_check ) {
voor trap twee
                if ($line =~ /$pattern_check/ ) {
Dus geen append strings m.b.v. "."
om echte perl insctructie voor 'match' te forceren.


Of het ook echt werkt, verneem ik graag.

Cheers
Geert Stappers



More information about the Linux mailing list