首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby子方法块的regexp中的大括号

Ruby子方法块的regexp中的大括号
EN

Stack Overflow用户
提问于 2011-10-17 02:40:23
回答 1查看 336关注 0票数 1

我有一个字符串:

代码语言:javascript
复制
s = "<aaa>bbb</ccc>"

我想在子方法的ruby块中获得aaa和bbb。如果我调用:

代码语言:javascript
复制
s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/,"first=\\1 second=\\2")

一切都和我预期的一样,所以输出是"first=aaa second=bbb“。然后我用ruby-block调用相同的regexp,但它只返回整个字符串,而不是\1和\2部分:

代码语言:javascript
复制
s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/) { |x,y| puts x; puts y; }

这个案例的输出是

代码语言:javascript
复制
<aaa>bbb</ccc>, nil. 

我怎样才能在子方法的ruby-block中得到像\1,\2这样的大括号中的句子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-17 02:45:35

sub生成的字符串将始终是完全匹配的。要获取捕获,可以在块中使用$1$2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7786449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档