in reply to Regular expression for two required words
gives output:#!/usr/bin/perl -w use strict; while (<DATA>) { chomp; print; print /(?=.*foo)(?=.*bar)/s ? "\t match \n" : "\t no match \n" +; } __DATA__ foo bar bar foo foo bar baz barbazfoo foofoobar
hth!foo bar match bar foo match foo no match bar no match baz no match barbazfoo match foofoobar match
andy.
Update re jeroenes's points below:
1. I used /s to make '.' match any character, in case fsn's *real* strings weren't all in one line.
2. Yes, or even print grep /(?=.*foo)(?=.*bar)/, <DATA> ; , but I wanted to print the failed matches too. Perhaps print map{ chomp; /(?=.*foo)(?=.*bar)/?"$_ yes \n":"$_ no \n"} <DATA> ;
;)
In Section
Seekers of Perl Wisdom