想象一下,我们有一些字符串形式的字母序列,称之为
str = "gcggcataa"
正则表达式
r = /(...)/
匹配任意三个字符,当我执行代码时
str.scan(r)
我得到以下输出:
["gcg", "gca", "taa"]
但是,如果我想扫描而不是如上所述的不同的非重叠字符串,而是希望获得此输出,那该怎么办:
["gcg", "cgg", "ggc", "gca", "cat", "ata", "taa"]
正则表达式允许这样做?
我知道我可以通过循环执行此操作,但我不想这样做
答案 0 :(得分:1)
str = "gcggcataa"
str.chars.each_cons(3).map(&:join) # => ["gcg", "cgg", "ggc", "gca", "cat", "ata", "taa"]