Ruby中带有括号和匹配的正则表达式

时间:2015-11-27 07:38:40

标签: ruby

在Ruby中,

x = "this is a test".match(/(\w+) (\w+)/)
puts x[0], x[1], x[2]

为什么输出

this is
this 
is

1 个答案:

答案 0 :(得分:2)

这里没什么特别的。你有模式

(\w+) (\w+)

以空格分隔的两个单词。在您的示例中,这将是"this is"(因为我们开始从字符串的开头查找匹配项)。完整匹配进入返回值的第零个元素,在您的情况下为x[0]

现在括号捕捉匹配。第一个左括号从第一个单词开始,即"this",以便该值进入x[1]。第二个左括号开始一个与单词"is"匹配的组,该组将被捕获到x[2]

再一次,没什么特别的。这就是正则表达式匹配和分组在许多语言中的工作方式。