[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/10/2007 8:26:00 PM

It does hurt readability, however, if it is in a variable then the
readability goes up a little. regex is probably a bad name, tho.

noRepeats3-6Letters = ...
dict.scan(noRepeats3-6Letters)

Even better would be a method that creates a regex for an arbitrary
length so it's ugliness is never shown in its entirety in one
concentrated spot. The king of readability, I admit, doesn't involve
/regexp?e[ns]/ at all.

class Array
def uniq?
(uniq == self)
end
end

class String
def letters
split(//)
end
end

dict.select {|x| x.length.between?(3, 6) && x.letters.uniq?}

dan

James Edward Gray II wrote:
> On Jan 7, 2007, at 6:41 PM, Daniel Finnie wrote:
>
>> Oops, that doesn't match {3,6} just {6}.
>>
>> >> 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]))?$/
>>
>
> Wow. That's darn clever, but probably over abusing regular expressions
> a bit, don't you think? ;)
>
> James Edward Gray II
>
>