正则表达式匹配一组花括号之间的所有单词

joe*_*lis 10 ruby regex

对于我认识的大多数正则表达式专家来说这是一个简单的问题,但是我试图在一个句子中的某些花括号之间返回所有匹配词; 但Ruby只返回一个匹配,我无法弄清楚为什么.

我正在使用这个例句:

sentence = hello {name} is {thing}
Run Code Online (Sandbox Code Playgroud)

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

sentence[/\{(.*?)\}/]
Run Code Online (Sandbox Code Playgroud)

但是,Ruby只返回"{name}".任何人都可以解释为什么它不匹配这两个词?

tad*_*man 21

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

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

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