ruby - 用于匹配一组大括号之间的所有单词的正则表达式

标签 ruby regex

对于我认识的大多数正则表达式专家来说,这是一个简单的问题,但我正在尝试返回句子中某些大括号之间单词的所有匹配项;但是 Ruby 只返回一个匹配项,我不知道为什么。

我正在使用这个例句:

sentence = hello {name} is {thing}

使用此正则表达式尝试返回“{name}”和“{thing}”:

sentence[/\{(.*?)\}/]

但是,Ruby 只返回“{name}”。谁能解释为什么这两个词不匹配?

最佳答案

你很接近,但使用了错误的方法:

sentence = "hello {name} is {thing}"

sentence.scan(/\{(.*?)\}/)
# => [["name"], ["thing"]]

关于ruby - 用于匹配一组大括号之间的所有单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210755/

相关文章:

android - 在 Ubuntu 上安装 Calabash Android 时无法构建 gem native 扩展

ruby - 升级到 Rails 5 后,应用不再接收请求

ruby-on-rails - 无法使用 xmpp4r_facebook 发送 Facebook 消息

regex - 使用正则表达式从头开始匹配 x 字符

javascript - JS 正则表达式名称模式

regex - 文本输入的正则表达式

ruby-on-rails - 未 check out 获取 "' gem(在 master 处)。首先运行 'bundle install'"每次我运行 rake db :migrate

ruby - 在 Ruby 中从 MongoDB 中检索字段的子集

java - 双引号的 Solr PatternTokenizer 正则表达式

regex - PCRE 是否正确支持 unicode 字符串?