From: Rob Biedenharn Date: 2008-08-06T23:52:34+09:00 Subject: Re: regular expression On Aug 6, 2008, at 10:26 AM, David Nguyen wrote: > Hi, > I need a regular expression for a filename : > it must be composed with the following letters : > > a to z > A to Z > 0 to 9 > dash sign - > underscore sign _ > > then how can I compare a string with it : > > mystring =~ /myregex/ #return true or false > > does it works like that ? Yes. Although String#=~ returns the position the match starts, or nil if there is no match. If the right-hand-side is not a Regexp, invokes obj.=~, passing str as an argument. The default =~ in Object returns false. Since a Fixnum is not nil or false, it will be "true" and both nil and false will be "false". The only other issue is that the dash (hyphen-minus; '-') is special inside a character class of regular expressions. For example, if you wanted to match a dash or digit, you could use /[-0-9]/ so the - appearing first is not treated as a character range operation. -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com