我正在尝试将所有重复的字母分组为一个字符串。

例如:

"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/

10-13 07:39
查看更多