From: Peter Woodsky Date: 2008-08-16T23:24:13+09:00 Subject: Re: Stumped on simple wildcard Thomas Bl. wrote: >> domain = ENV['HTTP_HOST'] >> if domain == '*domain1.com'; printf "

Welcome to Domain 1

" >> elsif domain == '?domain2.com'; printf "

Welcome to Domain 2

" >> elsif domain == 'domain3.com'; printf "

Welcome to Domain 3

" >> elsif domain == 'domain4.com'; printf "

Welcome to Domain 4

" >> elsif domain == 'domain5.com'; printf "

Welcome to Domain 5

" >> end > > Hello. When you compare two strings using ==, it is the exact match and > there are no wildcards in this kind of comparison. Use Regexen for your > task. > > Try this: > > if mat=domain.match(/domain([0-9])\.com$/i) > dm=mat[1].to_i > if (1..5).include?(dm) > printf "

Welcome to Domain #{dm}

" > else > # bad domain number > end > else > # not matching the pattern > end > > If you have domains with more digits (10, 11, ...), change to ([0-9]+) > in the Regex. Note the dot before com is escaped. The $ at the end means > that the string must end at com (without it, www.domain4.com.ru would > qualify also). The /i at the end of the pattern makes it case > insensitive. mat[1] reads the first parenthesised group from the Regexp, > which is the domain number in our case. > > Hope that helped. Yes thanks. I did find a simpler way though. The '' were the problem. domain = ENV['HTTP_HOST'] if domain =~ /domain1.com/;printf "

Welcome to Domain 1

" elsif domain =~ /domain2.com/;printf "

Welcome to Domain 2

" elsif domain =~ /domain3.com/;printf "

Welcome to Domain 3

" elsif domain =~ /domain4.com/;printf "

Welcome to Domain 4

" elsif domain =~ /domain5.com/;printf "

Welcome to Domain 5

" end -- Posted via http://www.ruby-forum.com/.