在Ruby中,
x = "this is a test".match(/(\w+) (\w+)/)
puts x[0], x[1], x[2]
为什么输出
this is
this
is
答案 0 :(得分:2)
这里没什么特别的。你有模式
(\w+) (\w+)
即以空格分隔的两个单词。在您的示例中,这将是"this is"
(因为我们开始从字符串的开头查找匹配项)。完整匹配进入返回值的第零个元素,在您的情况下为x[0]
。
现在括号捕捉匹配。第一个左括号从第一个单词开始,即"this"
,以便该值进入x[1]
。第二个左括号开始一个与单词"is"
匹配的组,该组将被捕获到x[2]
。
再一次,没什么特别的。这就是正则表达式匹配和分组在许多语言中的工作方式。