s =~ /(.)\1/ # look for a double letter
这段咋理解啊,直接 Orz 了……
正则表达式 (.) 表示分组,后边的\1表示前边找到的第一组的那个,所以就是两个一样的了,不过应该不一定是两个相同的字母吧。。 可以改为/([a-zA-Z])\1/ 返回找到的下标,找不到就返回 nil。。
不知道说的有没有问题:)
s.sub!(/(.)(.)/,'\2\1')
/(.)\1/
里面 . 是任意字符,而它又被捕获到了 \1 里面,所以查找到的内容一定是类似于
aa bb ww 这样的
但是因为又用的是 . 所以 ]] 这样也可以匹配上。
所以是一样的字幕 cc @Tony612