У меня есть специальные строки, такие как name1="value1" name2='value2'
. Значения могут содержать пробелы и ограничены одинарными кавычками или двойными кавычками. Имена никогда не содержат пробелов. пары имя/значение разделяются пробелами.Как разбить строку в Ruby?
Я хочу, чтобы разобрать их в список пар имя-значение, как этот
string.magic_split() => { "name1"=>"value1", "name2"=>"value2" }
Если Рубин понял lookaround утверждения, я мог бы сделать это с помощью
string.split(/[\'\"](?=\s)/).each do |element|
element =~ /(\w+)=[\'\"](.*)[\'\"]/
hash[$1] = $2
end
но Руби не понимает lookaround утверждений, поэтому я несколько застрял.
Тем не менее, я уверен, что есть намного более элегантные способы решения этой проблемы в любом случае, поэтому я обращаюсь к вам. У вас есть хорошая идея для решения этой проблемы?
Единственный правильный способ разобрать все - это один символ за раз. – Sorpigal
Является ли строка ввода стандартным форматом? –
Может ли значения содержать кавычки? –