Alle 22:21, domenica 19 novembre 2006, Luca Scaljery ha scritto:
> Hi All
>
> I just tried to test the content of a string, something like this:
>
>
> c = "1234AA"
>
> if c.scan( /1234567890/ )
>    p "OK"
> else
>    p "NO"
> end
>
>
> This always returns "OK" :(
>
> Any suggestions what goes wrong here. And is this the way to check the
> content of a string ?
>
> Thanks a lot
> LuCa

Even when there's no match, String#scan returns an array, so your is always 
true. To make it work, you should use
  if !c.scan(/1234567890/).empty?

As for your second question, it depends on what exactly you want to do. It is 
the correct form if you need to get all the numbers in the string, regardless 
of their position or any other thing (by the way, if you want to match a 
digit in a regexp, you can use /\d/). If you simply want to check whether the 
string contains a digit, you can use String#match or =~ with the /\d/ regexp. 
If you need more control on the scanning, you can use the StringScanner 
class.

I hope this helps

Stefano