Hi, folks.
So suppose you want a regular expression to match at least one of
three words:
/word1|word2|word3/
What solution would you use if you wanted at least _two_ of those
three words?
Isn't there a neater (and probably twisted, of course) way of saying
/match at least $x of the words in @words/ without having to do
something like:
1) get all the combinations of $x words in @words
2) for each of those, find the permutations ( [qw/word1, word2/],
[qw/word2, word1/] )
3) create the regexen ( /word1.*word2/, /word2.*word1/ )
4) join them all with "|" and create the regex out of it
Something in the lines of:
join "|", map { join ".*", @$_ } map { [permutations(@$_)] } combinations($x,
@words)
(code untested, of course)
There's gotta be a better way, no? Any comments?
Cheers,
jac
--
Jose Alves de Castro <[EMAIL PROTECTED]>
http://jose-castro.org/