Autor Zpráva
temistokles
Profil
Ahojte,

mam problem. Potreboval by som napisat regulerny vyraz, ktory mi nahradi vsetky znaky, ktore sa oapkuju viac ako pat krat piatimi rovnakymi znakmi.

Napriklad:

werhhhhhhhhhhhhhhhhhhzrt --> werhhhhhzrt


NEch sa snazim jak sa snazim, nefunguje mi to. Vopred diki.
temistokles
Profil
Najlepsia verzia ku ktorej som sa dostal je:


preg_replace('~(.{1})+(\\1{4,})~', '\\1\\1\\1\\1\\1', $text)



ma vsak chybicky krasy, a sice: vrti iba text, ktory zacina 5 opakujucima sa znakmi (vratane)

teda:

werhhhhhhhhhhhhhhhhhhzrt --> hhhhhzrt

alebo:

werrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhhhhhhhhhh -> hhhhh
Pavel Strejček
Profil
Možné řešení je:

$text = preg_replace('~((.)\2{4})\2*~', '$1', $text);
Toto téma je uzamčeno. Odpověď nelze zaslat.