В Ruby 1.9 вы можете
result = subject.split(/(?<=\})/)
, т.е. разделить строку в позиции, следующей за }
. Тем не менее, Ruby 1.8 не поддерживает утверждения за кадром, поэтому он не будет работать там. И, конечно, у вас будут проблемы с вложенными скобками, но вы сказали, что это не должно быть проблемой с вашими данными.
В Ruby 1.8 (не могу попробовать здесь) должно работать следующее:
result = subject.split(/(\})/)
хотя теперь закрывающие скобки больше не будут частью соответствующих элементов. Таким образом, test {a} test2 {b}
будет разбит на test {a
, }
, test2 {b
, }
плюс пустую строку.