在Ruby文档中,它解释了:
'hello'.match('(.)\1')[0] #=> "ll"
(.)\1
如何挑选出“ll”?我用其他单词替换了“你好”,包括双字母,如“再见”和“奶酪”,我看到它一直在挑选双字母。
然后我还用更多双字母扩展了字符串,并在括号中添加了更多.s,如下:
puts 'boooooo'.match('(...)\1') #=> oooooo
所以我明白了。对应任何字符。但为什么它会返回加倍的字母?
由于
答案 0 :(得分:2)
你遇到了反对意见。它们匹配先前由捕获组匹配的相同文本(在您的第一个示例中,您的捕获组,内部的parantheses,.
,任何字符),并且精确\1
指的是第一个捕获组