Один из подходов здесь состоит в том, чтобы использовать обходные пути, чтобы обеспечить соответствие только островков ровно двух шестерок:
String regex = "(?<!6)66(?!6)";
String text = "6678793346666786784966";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
Это находит счетчик два для введенной вами входной строки (два совпадения: 66
в самом начале и конце строки).
Шаблон регулярного выражения использует два обходных пути, чтобы утверждать, что то, что предшествует первым 6 и вторым 6, не другие шестерки:
(?<!6) assert that what precedes is NOT 6
66 match and consume two 6's
(?!6) assert that what follows is NOT 6