On 2007-01-28 11:20:27 +0100, Robert Klemme <shortcutter / googlemail.com> said:

> On 28.01.2007 11:13, Josselin wrote:
>> I have the following string
>> id = "(48.88689971942316, 2.3380279541015625)"
>> is there any method to transform directly into an array 
>> [48.88689971942316, 2.3380279541015625] or should extract both parts 
>> and create the array (what I did.. but not very DRY)
> 
> In this simple case you can do:
> 
>  >> id = "(48.88689971942316, 2.3380279541015625)"
> => "(48.88689971942316, 2.3380279541015625)"
>  >> id.scan /\d+\.\d+/
> => ["48.88689971942316", "2.3380279541015625"]
>  >> id.scan(/\d+\.\d+/).map! {|x| x.to_f}
> => [48.8868997194232, 2.33802795410156]
> 
> It depends on the values that can occur in the string if this is 
> sufficient (for example, the piece above does not take care of signs 
> also does not recognize numbers without decimals).  You can find plenty 
> solutions for matching floating point numbers in the archives of this 
> list / newsgroup.
> 
> Generally, if you get this string from some piece of external code, you 
> want to parse it in some way to make sure it matches your expectations.
> 
> Kind regards
> 
> 	robert

thanks Robert, better that what I originally wrote : (suppressing 
parenthesis then split on comma)

@point = id.tr('()', ' ').split(',')