如何使用正则表达式找到重复的字符?
如果我有aaabbab
,我想只匹配有三次重复的字符:
aaa
答案 0 :(得分:10)
尝试string.scan(/((.)\2{2,})/).map(&:first)
,其中string
是您的字符串。
这种方法的工作方式是它查找任何字符并捕获它(点),然后匹配该字符的重复(\2
反向引用)2次或更多次({2,}
范围意味着“在2到无限时间之间的任何地方”)。扫描将返回一个数组数组,因此我们将第一个匹配项映射到其中以获得所需的结果。