Поскольку вы хотите отменить совпадение, если все символы одинаковы, вы можете использовать отрицательный взгляд, чтобы отклонить это. В противном случае вы можете изменить +
на {2,}
в квантификаторе, где вы захватываете первую часть, а затем использовать {2,}
, чтобы ваша первая подходящая часть повторялась три или более раз. Вы можете использовать это регулярное выражение,
^(?!(.)\1+$)(.{2,})\2{2,}$
Пояснение:
^
- начало строки
(?!(.)\1+$)
- этот негативный взгляд вперед гарантирует, что если строка состоит только из одного символа до конца строки, то отклоняет совпадение.
(.{2,})
- сопоставьте два или более любых символа и захватите их в группу2
\2{2,}
- Повторите то, что было захвачено в группе2 два или более раз
$
- конец строки
Regex Demo 1
Кроме того, из вашего поста, как вы сказали, вы не хотите совпадать с aaaa
, так как шаблон aa
повторяется только два раза, а не три или более раз, так что если я прав, и вы считаете aaaaaa
как успешное совпадение, потому что теперь он имеет aa
повторение три раза, в этом случае вы можете избавиться от негативного взгляда из моего вышеприведенного регулярного выражения и использовать это регулярное выражение, которое не будет соответствовать aaaa
, но будет соответствовать aaaaaa
, как я объяснено выше.
^(.{2,})\1{2,}$
Regex Demo 2
Дайте мне знать, действительно ли это то, что вы хотели. В случае каких-либо запросов, не стесняйтесь оставлять свой комментарий.