2016-07-11 3 views
-1

Hallo, ich habe eine Liste von StringsWie ID aus einer Zeichenfolge erhalten "REF Produkt: [Titel: gr8vh1, id: 1]"

"REF Product: [Title: gr8vh1, id: 1]" 
"REF Product: [Title: gr8vh1, id: 2434]" 
"REF Product: [Title: gr8vh1, id: 324]" 

Wie bekomme ich die ID von jedem String so dem Ausgang ich mag das?

"REF Product: [Title: gr8vh1, id: 1]" 
=> 1 
"REF Product: [Title: gr8vh1, id: 2434]" 
=> 2434 
"REF Product: [Title: gr8vh1, id: 324]" 
=> 324 

Antwort

0

Probieren Sie etwas wie

"REF Product: [Title: gr8vh1, id: 1]".scan(/id: (\d+)/).flatten[0].to_i 
=> 1 
0

Wenn Titel nie mit einer ganzen Zahl beginnt, sehe ich ein viel einfacheres Muster:

str = "REF Product: [Title: gr8vh1, id: 2434]" 
str[/ \d+/].strip #regex to find integer after whitespace 
#=> "2434" 
0

Sie Hash aus dieser Zeichenfolge erstellen:

h = Hash[s[/\[(.*)\]/, 1].split(", ").map(&:split)] 
# => {"Title:"=>"gr8vh1", "id:"=>"1"} 

puts h["id:"] 
# => "1" 
Verwandte Themen