Вы можете использовать следующее регулярное выражение, чтобы определить, появляется ли один символ хотя бы три раза.
^.*(.).*\1.*\1
Демо
Это не проверяет, что символы буквы, но он работает с любыми символами. Чтобы ограничить использование букв, измените каждый .
на [a-z]
или [a-zA-Z]
, в зависимости от ситуации.
Чтобы увидеть, появляется ли один символ точно 3 раза, измените регулярное выражение на:
^(?!.*(.)(?:.*\1){3,}).*(.).*\2.*\2
Демо
^ # match beginning of line
(?! # begin negative lookahead
.* # match 0+ chars
(.) # match a char in cap grp 2
(?:.*\1) # match 0+ chars followed by content of cap grp 1
# in a non-cap grp
{3,} # execute non-cap grp 3+ times
) # end negative lookahead
.* # match 0+ chars
(.) # match char in cap grp 2
.* # match 0+ chars
\2 # match content of cap grp 2
.* # match 0+ chars
\2 # match content of cap grp 2