Regex для обнаружения одного и того же символа более пяти раз?

Я пытаюсь понять, как написать регулярное выражение, которое может обнаружить, если в моей строке любой символ повторяется более пяти раз подряд? Например, он не обнаружил бы «привет», но обнаружил бы «helloooooooooo».

Есть идеи?

Изменить : Извините, чтобы уточнить, мне нужно, чтобы он обнаружил тот же символ, который повторялся более пяти раз, а не последовательность из пяти символов. И мне также нужно, чтобы он работал с любым уставом, а не просто «о», как в моем примере. «. {5,}» не годится, потому что он просто определяет любую последовательность из пяти символов, а не одного и того же символа.

Это должно сделать это

(\w)\1{5,} 
  • (\w) соответствует любому символу и помещает его в первую группу
  • \1{5,} убедитесь, что первая группа соответствует не менее 5 раз.

Применение :

 $input = 'helloooooooooo'; if (preg_match('/(\w)\1{5,}/', $input)) { # Successful match } else { # Match attempt failed } 

Исправление, должно быть (.)\1{5,} , я верю. Виноват. Это доставит вам:

 (.) #Any character \1 #The character captured by (.) {5,} #At least 5 more repetitions (total of at least 6) 

Вы также можете ограничить его письмами с помощью (\w)\1{5,} или ([a-zA-Z])\1{5,}

Ага.

 (.)\1+ 

Это будет соответствовать повторяющимся последовательностям любого символа.

\1 просматривает содержимое первого набора скобок. (поэтому, если у вас более сложное регулярное выражение, вам нужно будет настроить его на правильный номер, чтобы он подбирал правильный набор скобок).

Если вам нужно указать, скажем, более трех из них:

 (.)\1{3,} 

Синтаксис \ 1 достаточно мощный – например, вы также можете использовать его в другом месте в своем регулярном выражении для поиска того же символа, который появляется в разных местах в строке поиска.

Вы можете использовать регулярное выражение:

 (.)\1{5,} 

Объяснение:

  • . : Meta char, который соответствует любому символу.
  • () : Используются для группировки и запоминания согласованного одиночного символа.
  • \1 : обратная ссылка на единственный символ, который был запомнен в предыдущем шаге.
  • {5,} : Квантификатор для 5 или более

и в PHP вы можете использовать его как:

 $input = 'helloooooooooo'; if(preg_match('/(.)\1{5,}/',$input,$matches)) { echo "Found repeating char $matches[1] in $input"; } 

Вывод:

 Found repeating char o in helloooooooooo