Autor Zpráva
Rossko
Profil *
Dobý deň, potrebujem regex na text taký, že v prípade, že je v texte niečo oddelený max jedným voľným riadkom (<br><br>) tak to prejde, ale ak je viac voľných riadkov, tak sa to skráti na <br><br>

použil som
$text = preg_replace("/(<br\s*\/?>\s*)+/", "<br/>", $text);
to však nahradí všetky viacnásobné výskyty len za 1<br>..

Teda ešte príklad.. ak je text:
a





b

a


Tak výstup by mal byť:
a

b

a
Dúfam, že som to dobre vysvetlil, ďakujem za pomoc
Tori
Profil
preg_replace("/(<br\s*\/?>\s*){2,}/", "<br/><br/>", $text);
Rossko
Profil *
a v prípade, žen a konci textu dá <br><br><br><br><br><br><br> aby ich vymazalo úplne ak sa už za tým text nenachádza?
Tori
Profil
preg_replace('~(<br\s*/?>\s*)+$~', '', $text); - dolar znamená konec textu. php.net/book.pcre
Rossko
Profil *
Ďakujem veľmi pekne :)
Rossko
Profil *
a zo začiatku ako? :) ak ešte pred textom je <br><br><br><br> aby ich všetky zmazalo ? :) ale len po začiatok textu, potom, nech funguje tá druhá časť, že ak je viac ako 2, nech skráti na 2 a nakonci za textom ak sú, tak všetky zase preč?
ďakujem
Tori
Profil
Rossko:
nech funguje tá druhá časť, že ak je viac ako 2, nech skráti na 2
viz [#2]
A pro ty okraje řetězce stačí zrcadlově upravit regulár ve [#4]: ~^(\s*<br\s*/?>)+|(<br\s*/?>\s*)+$~ (Nejde to udělat jedním příkazem, když chcete nahrazovat dvěma různými řetězci.)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: