我有一个字符串:
s = "<aaa>bbb</ccc>"
我想在子方法的 ruby 块中获取 aaa 和 bbb。如果我打电话:
s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/,"first=\\1 second=\\2")
一切都按我的预期工作,所以输出是“first=aaa second=bbb”。然后我用 ruby-block 调用相同的正则表达式,但它只返回整个字符串,而不是 \\1 和 \\2 部分:
s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/) { |x,y| puts x; puts y; }
这种情况下的输出是
<aaa>bbb</ccc>, nil.
如何在子方法的 ruby-block 中获取大括号中的句子,如 \\1、\\2?