Код: Выделить всё
#!/usr/bin/ruby -Ku
RE = /(".*?")|(<<(.*?)$.*?^\3)/m
text = <<TEXT
a = "alpha"
b = <<SUB
beta
SUB
TEXT
p text.split(RE)Показывает следующий результат:
Код: Выделить всё
["\na = ", "\"alpha\"", "\n\nb = ", "<<SUB\nbeta\nSUB", "SUB", "\n\n"]Меня не устраивает лишний элемент "SUB". Есть ли в Ruby такая возможность: сделать группировку видимой только внутри регулярного выражения (чтобы на нее можно было ссылаться), но не попадающей наружу? '(?>' не спасает.