From: "ara.t.howard" Date: 2008-05-09T08:07:34+09:00 Subject: Re: Doing an AND in regexp char class On May 8, 2008, at 3:40 PM, Todd Benson wrote: > This question arises out of a couple of recent threads and may or may > not be a Ruby-specific question. > > I can check with a character class if one of the characters in the > class exists or does not exist, but can I use a regexp to check if a > string absolutely contains all of the characters in the class? > > Using a set perspective, I can do it like this in irb... > > s1 = "hello there" > s2 = "ohi" > (s2.unpack('c*') & s1.unpack('c*')).size == s2.size > > => false > > I use unpack to avoid creating a bunch of String objects, one for each > element in the array, which would happen if I used #split. What I'm > wondering is if there is a way to do this with a simple regexp. > > Thanks, > Todd cfp:~ > cat a.rb class String def all_chars? chars tr(chars, '').empty? end end p 'foobar'.all_chars?('rabof') p 'foobar'.all_chars?('abc') p 'foobar'.all_chars?('') cfp:~ > ruby a.rb true false false a @ http://codeforpeople.com/ -- we can deny everything, except that we have the possibility of being better. simply reflect on that. h.h. the 14th dalai lama