Autor Zpráva
TFSi
Profil *
Ahoj,
přidal jsem si na své diskuzn fórum jednoduché formátování po vzoru diskuzních fór phpBB (a nejen jich).
Nyní jsem ale narazil na jeden problém: s regulerními výrazy si moc nerozumím a to co jsem vypotil mi nic nenahrazuje.
V historii diskze jsem nic použitelného nenašel. Pomůžete mi, prosím?
Můj výplod:
preg_replace('/\[b\](.*)\[\/b\]/', '<strong>$1</strong>', $q['text']);


Předem dík za jakoukoliv pomoc

BTW: snažím se o to, aby jeden reg. výraz nahrazoval obě značky, tedy i za <b> a </b>, a ne každou zvlášť ...
Nox_lbc
Profil
1) REGULÁRNÍ VÝRAZY
2) http://www.regexp.cz/
k
Profil *
TFSi
Jestli si ten regularni vyraz vypotil opravdu ty, tak by ti to co potrebujes udelat nemelo delat problem.
Retal
Profil
Vždyť to máš skoro správně. Funguje to, pokud je na jednom řádku nejvýše jeden nalezený výraz. Aby ti to fungovalo obecně, přidej ještě modifikátory s (dot all) a U (ungreedy) (vysvětlení viz manuál).

preg_replace('/\[b\](.*)\[\/b\]/sU', '<strong>$1</strong>', $test)
TFSi
Profil *
Tak všem mockrát děkuju, problém nebyl ani tak ve výrazu, jako spíš v lidském faktoru. Přece jenom, je rozdíl mezi
preg_replace('/\[b\](.*)\[\/b\]/', '<strong>$1</strong>', $q['text']); a $forated = preg_replace('/\[b\](.*)\[\/b\]/', '<strong>$1</strong>', $q['text']);. Omlouvám se, ale holt se občas stane i v lepších rodinách =)

To Retal: vidíš, sU mě nenapadlo. Využiju to. Díky

To k: inspiroval jsem se manuálem, "kompletace" je mé dílo. A jak vidíš, opravdu to fungue...teda pokud neudělám botu někde jinde. =)


To Nox_lbc:
1) É, Á, to považuju za drobný detail, který nemá na správnou funkci žádný vliv. Já ríkám regulÉrní, prtože mě občas regulérně se*ou ;)
2) možná tak www.regularnivyrazy.info, regexp.cz je v mám případě celkem k ničemu, testovat výrazy můžu i na localu.
Toto téma je uzamčeno. Odpověď nelze zaslat.