[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