У меня есть следующий пример отформатированной строка:совпадающих пары значений имени без разделителя между ними
== header == information about things ==headeragain== info can have characters like.*?{=
и т.д. только на одной линии.
Я хочу разобрать это на хэш, чтобы клавиши были «==. +? ==», а значения - информация после клавиш. Я попробовал несколько регулярных выражений глобально соответствуют этим парам:
%hash = $string =~ /(==.+?==)(.+)/g
и
%hash = $string =~ /(==.+?==)(.+?)/g
будет соответствовать первый ключ, а затем все остальное в качестве значения, и соответствуют только ключи соответственно.
%hash = $string =~ /(==.+?==)(.+(?===.+?==))/g
Предполагается, что впереди следующий ключ, но не «съесть его», как я его понимаю. Тем не менее, он будет соответствовать только первой паре и не идти дальше.
Я думаю, эта проблема возникла из-за непонимания того, как действует глобальный модификатор. Нужно ли мне что-то менять в одном из моих выражений? Или мне нужно делать что-то совершенно другое?
Спасибо, взгляд на «$», чтобы получить последнюю пару - это то, что мне нужно! Немного глупо от меня. – MattLBeck