У меня есть строка:
s = "<aaa>bbb</ccc>"
Я хочу получить aaa и bbb в блоке ruby для метода sub.Если я позвоню:
s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/,"first=\\1 second=\\2")
, все будет работать так, как я ожидаю, поэтому вывод «first = aaa second = bbb».Затем я вызываю тот же regexp с ruby-block, но он возвращает только всю строку, но не \\ 1 и \\ 2 части:
s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/) { |x,y| puts x; puts y; }
Выходные данные этого случая
<aaa>bbb</ccc>, nil.
Как я могу получить предложения в скобках, такие как \\ 1, \\ 2 в ruby-block для метода sub?