[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: [QUIZ] Word Blender (#108

Daniel Finnie

1/8/2007 12:32:00 AM

Here is a version of the regex that works around that:
regex =
/^([a-z])(?!\1)([a-z])(?!\1|\2)([a-z])(?!\1|\2|\3)([a-z])(?!\1|\2|\3|\4)([a-z])(?!\1|\2|\3|\4|\5)([a-z])$/

Some examples:
>> regex.match 'abcdef'
=> #<MatchData:0xb7b46a18>
>> regex.match 'abcdefg'
=> nil
>> regex.match 'abcddf'
=> nil
>> regex.match 'abbdtf'
=> nil
>> regex.match 'Abbdtf'
=> nil
>> regex.match 'awesom'
=> #<MatchData:0xb7b3a5b0>
>> regex.match 'hollow'
=> nil

Fedor Labounko wrote:
> On 1/7/07, Daniel Finnie <danfinnie@optonline.net> wrote:
>
>> # Find words that use the same letters
>> selectedWords = dict.scan(/^[#{baseWord}]{3,6}$/)
>
>
> I was really impressed when I first saw this. It doesn't quite work if you
> want to exclude reusing the same letter more than once
> ("hhh".scan(/^[hello]{3,6}$/) => ["hhh"]) but it comes so close to
> something
> I've only ever thought about implementing as a recursive method.
> Unfortunately I don't know much about this but now I wonder if it's
> possible
> to find all partial permutations of a word with a regexp.
>