Вам нужно регулярное выражение /(.)\1{9,}/
.
Тест:
#!perl
use warnings;
use strict;
my $regex = qr/(.)\1{9,}/;
print "NO" if "abcdefghijklmno" =~ $regex;
print "YES" if "------------------------" =~ $regex;
print "YES" if "========================" =~ $regex;
Здесь \1
это называется обратной ссылкой. Он ссылается на то, что обозначено точкой .
между скобками, (.)
а затем {9,}
запрашивает девять или более одинаковых символов. Таким образом, это соответствует десяти или более любым одиночным символам.
Хотя приведенный выше тестовый сценарий написан на Perl, это очень стандартный синтаксис регулярных выражений, который должен работать на любом языке. В некоторых вариантах вам может понадобиться использовать больше обратной косой черты, например, Emacs заставит вас написать \(.\)\1\{9,\}
здесь.
Если вся строка должна состоять из 9 или более одинаковых символов, добавьте якоря вокруг шаблона:
my $regex = qr/^(.)\1{9,}$/;