I have this string:
store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel
need with regexp, put it's in Hash object
···
--
Posted via http://www.ruby-forum.com/.
I have this string:
store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel
need with regexp, put it's in Hash object
--
Posted via http://www.ruby-forum.com/.
What have you tried? Where are you stuck?
Show us your attempts and we will be happy to help you fix them...
James Edward Gray II
On Apr 26, 2006, at 6:37 AM, Jonh wrote:
I have this string:
store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancelneed with regexp, put it's in Hash object
Jonh wrote:
I have this string:
store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancelneed with regexp, put it's in Hash object
That is my version for problem solving.
I want to simplify it
if params[:param]
paramater = Hash.new
for value in params[:param].split(/,/)
if value =~ /(.*)=(.*)/
parameter[$1] = $2
end
end
end
puts parameter.inspect
--
Posted via http://www.ruby-forum.com/\.
Jonh wrote:
I have this string:
store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancelneed with regexp, put it's in Hash object
That is my version for problem solving.
I want to simplify itif params[:param]
paramater = Hash.new
for value in params[:param].split(/,/)
if value =~ /(.*)=(.*)/
parameter[$1] = $2
end
end
end
puts parameter.inspect
Does this help?
>> str = "store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]= 80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
=> "store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]= 80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
>> Hash[*str.scan(/([^\s,]+)\s*=\s*([^,]+)/).flatten]
=> {"cancel"=>"cancel", "store[fax]"=>"80233923293", "store[name]"=>"Ilyas store", "save"=>"save", "store[description]"=>"lkjklsdaj", "store[phone]"=>"4999-233-2923"}
James Edward Gray II
On Apr 26, 2006, at 7:12 AM, Jonh wrote:
> Jonh wrote:
>> I have this string:
>>
>> store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
>> 80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel
>>
>> need with regexp, put it's in Hash object
>
> That is my version for problem solving.
> I want to simplify it
>
> if params[:param]
> paramater = Hash.new
> for value in params[:param].split(/,/)
> if value =~ /(.*)=(.*)/
> parameter[$1] = $2
> end
> end
> end
> puts parameter.inspectDoes this help?
>> str = "store[name]=Ilyas store,store[phone]= 4999-233-2923, store
[fax]= 80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
=> "store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
>> Hash[*str.scan(/([^\s,]+)\s*=\s*([^,]+)/).flatten]
=> {"cancel"=>"cancel", "store[fax]"=>"80233923293", "store
[name]"=>"Ilyas store", "save"=>"save", "store
[description]"=>"lkjklsdaj", "store[phone]"=>"4999-233-2923"}
or the slight modification to James' answer:
store = Hash[*str.scan(/\S\[([^\s,]+)\]\s*=\s*([^,]+)/).flatten]
=> {"name"=>"Ilyas store", "description"=>"lkjklsdaj", "phone"=>"4999-233-2923"}
Cameron
On 4/26/06, James Edward Gray II <james@grayproductions.net> wrote:
On Apr 26, 2006, at 7:12 AM, Jonh wrote:
Hi --
On Wed, 26 Apr 2006, Cameron McBride wrote:
On 4/26/06, James Edward Gray II <james@grayproductions.net> wrote:
On Apr 26, 2006, at 7:12 AM, Jonh wrote:
Jonh wrote:
I have this string:
store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancelneed with regexp, put it's in Hash object
That is my version for problem solving.
I want to simplify itif params[:param]
paramater = Hash.new
for value in params[:param].split(/,/)
if value =~ /(.*)=(.*)/
parameter[$1] = $2
end
end
end
puts parameter.inspectDoes this help?
>> str = "store[name]=Ilyas store,store[phone]= 4999-233-2923, store
[fax]= 80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
=> "store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
>> Hash[*str.scan(/([^\s,]+)\s*=\s*([^,]+)/).flatten]
=> {"cancel"=>"cancel", "store[fax]"=>"80233923293", "store
[name]"=>"Ilyas store", "save"=>"save", "store
[description]"=>"lkjklsdaj", "store[phone]"=>"4999-233-2923"}or the slight modification to James' answer:
> store = Hash[*str.scan(/\S\[([^\s,]+)\]\s*=\s*([^,]+)/).flatten]
=> {"name"=>"Ilyas store", "description"=>"lkjklsdaj", "phone"=>"4999-233-2923"}
But... but... neither of you guys's version gives the same result as
Jonh's ![]()
I think this does:
Hash[*str.scan(/([^,]+)=([^,]+)/).flatten]
David
--
David A. Black (dblack@wobblini.net)
Ruby Power and Light, LLC (http://www.rubypowerandlight.com)
"Ruby for Rails" PDF now on sale! Ruby for Rails
Paper version coming in early May!
I was going to do that too, until I realized that it lost fields.
I imagine they aren't needed though and your way is much better.
James Edward Gray II
On Apr 26, 2006, at 7:56 AM, Cameron McBride wrote:
On 4/26/06, James Edward Gray II <james@grayproductions.net> wrote:
On Apr 26, 2006, at 7:12 AM, Jonh wrote:
Jonh wrote:
I have this string:
store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancelneed with regexp, put it's in Hash object
That is my version for problem solving.
I want to simplify itif params[:param]
paramater = Hash.new
for value in params[:param].split(/,/)
if value =~ /(.*)=(.*)/
parameter[$1] = $2
end
end
end
puts parameter.inspectDoes this help?
str = "store[name]=Ilyas store,store[phone]= 4999-233-2923, store
[fax]= 80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
=> "store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"Hash[*str.scan(/([^\s,]+)\s*=\s*([^,]+)/).flatten]
=> {"cancel"=>"cancel", "store[fax]"=>"80233923293", "store
[name]"=>"Ilyas store", "save"=>"save", "store
[description]"=>"lkjklsdaj", "store[phone]"=>"4999-233-2923"}or the slight modification to James' answer:
> store = Hash[*str.scan(/\S\[([^\s,]+)\]\s*=\s*([^,]+)/).flatten]
=> {"name"=>"Ilyas store", "description"=>"lkjklsdaj", "phone"=>"4999-233-2923"}
We decided he didn't really want those spaces. We're always forcing our opinions on others. Luckily, David is nice than we are. ![]()
James Edward Gray II
On Apr 26, 2006, at 8:02 AM, dblack@wobblini.net wrote:
Hi --
On Wed, 26 Apr 2006, Cameron McBride wrote:
On 4/26/06, James Edward Gray II <james@grayproductions.net> wrote:
On Apr 26, 2006, at 7:12 AM, Jonh wrote:
Jonh wrote:
I have this string:
store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancelneed with regexp, put it's in Hash object
That is my version for problem solving.
I want to simplify itif params[:param]
paramater = Hash.new
for value in params[:param].split(/,/)
if value =~ /(.*)=(.*)/
parameter[$1] = $2
end
end
end
puts parameter.inspectDoes this help?
>> str = "store[name]=Ilyas store,store[phone]= 4999-233-2923, store
[fax]= 80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
=> "store[name]=Ilyas store,store[phone]= 4999-233-2923, store[fax]=
80233923293,store[description]=lkjklsdaj,save=save,cancel=cancel"
>> Hash[*str.scan(/([^\s,]+)\s*=\s*([^,]+)/).flatten]
=> {"cancel"=>"cancel", "store[fax]"=>"80233923293", "store
[name]"=>"Ilyas store", "save"=>"save", "store
[description]"=>"lkjklsdaj", "store[phone]"=>"4999-233-2923"}or the slight modification to James' answer:
> store = Hash[*str.scan(/\S\[([^\s,]+)\]\s*=\s*([^,]+)/).flatten]
=> {"name"=>"Ilyas store", "description"=>"lkjklsdaj", "phone"=>"4999-233-2923"}But... but... neither of you guys's version gives the same result as
Jonh'sI think this does:
Hash[*str.scan(/([^,]+)=([^,]+)/).flatten]