私は文字列を持っています:
s = "<aaa>bbb</ccc>"
サブメソッドのrubyブロックでaaaとbbbを取得したい。私が電話した場合:
s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/,"first=\\1 second=\\2")
すべてが期待どおりに機能するため、出力は「first = aaasecond=bbb」になります。次に、ruby-blockを使用して同じ正規表現を呼び出しますが、文字列全体のみが返され、\\1と\\2の部分は返されません。
s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/) { |x,y| puts x; puts y; }
この場合の出力は
<aaa>bbb</ccc>, nil.
subメソッドのruby-blockで\\1、\\ 2のような中かっこで文を取得するにはどうすればよいですか?