我正在尝试将所有重复的字母分组为一个字符串。
例如:
"aaaaaaabbbbbbbbc" => [['aaaaaaa'],['bbbbbbbb'],['c']]
使用逻辑和Ruby,我能找到达到目的的唯一方法是:
.scan(/(?:a+|A+)|(?:b+|B+)|(?:c+|C+)| ..... (?:y+|Y+)|(?:z+|Z+))
其中
...
是其他字母。有一种方法可以烘干该RegEx吗?
我也使用了backtrace
(\1)
,但是它与单个单词不匹配,并且也没有向我返回精确的字母match => (\w+)\1
=> [['aa'],['bb']]
嗯,在这种情况下使用正则表达式是错误的,应该在迭代中使用Ruby方法吗?
我很高兴听到您的意见:)
谢谢!
最佳答案
只需使用另一个捕获组来捕获重复的字符。
s.scan(/((\w)\2*)/).map(&:first)
# => ["aaaaaaa", "bbbbbbbb", "c"]
关于ruby - 正则表达式组重复字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46989134/