[ CONFIQ @ 06.12.2002. 23:40 ] @
Ne znam da li je ovo pravi forum da pitam al..

Pokušavam da napravim BBCode/UBBC al mi nikako ne ide uz ruku... napisao sam sledeći primer

Code:
$preg = preg_replace("/(\[(b|B)\])(.+)(\[\/(b|B)\])/","<b>\\3</b>",$preg);


ovo bi trebalo da bolduje sve što je između [B] i [/B] tagova što i delimično radi,Problem je u tome što ako upišem novi red onda preg u opšte ne radi,znači ako neko napiše [B]text
text[/B] funckija ne radi

to je zbog tačke koja se nalazi u ovom delu '(.+)' ,pokušavao sam već 2 dana da napišem umesto toga (*) il (+) il (^+*$) al ništa ne radi...

Ako neko ima pojma ušta da zamenim (.+) stvarno svaka mu čast

P.S.Zanimaju me dokumentacija o regularnim izrazima al ne neki howto koji treba da čitam 2 sata nego neki artikal ako imate u bookmark-u ;Đ

Hvala na svakom predlogu

[ CONFIQ @ 07.12.2002. 00:36 ] @
A najzanimljivije je to što (^+) je skoro isti đavo al ni to ne radi :(
[ -zombie- @ 07.12.2002. 01:07 ] @
ja bih ti ipak preporucio da procitash svu dokumentaciju (koju nadjesh).

narocito: http://www.php.net/manual/en/pcre.pattern.modifiers.php

zato sto se po ovim "modifierima" pcre razlikuje (i zato je i jaci) od posix regexa.

posle procesljaj i http://www.php.net/manual/en/pcre.pattern.syntax.php


inace, tebi treba da dodash "i" i "U" i "s" modifiere na kraj regularnog izraza:

Code:

$preg = preg_replace("/(\[(b|B)\])(.+)(\[\/(b|B)\])/iUs","<b>\\3</b>",$preg);


"i" znaci da ignorise mala i VELIKA slova, pa onda mozes i da uprostish izraz (ono malo b i veliko B). ovo uradi sam. mrzi me ;)

"U" znaci "Ungreedy" sto u prevodu znaci da ako imash dva puta u istoj stranici [b]nesto[/b] i josh [b]ponesto[/b] onda ce bez "U" modifiera da ti matchuje sve od prvog [b] do poslednjeg [/b].

poslednje "s" oznacava ono sto ti hoces, a to je da tacka "." u preg paternu mattchuje i novi red, pa ovako skanirash i text od vis redova...



iako sam ti ja ovo sve lepo objasnio na kasicicu, ti ipak potrosi 2 sata i procitaj taj manual. ulozi bar toliko u sebe...
[ CONFIQ @ 07.12.2002. 01:53 ] @
Bacio sam pogled na Modifiers al nije bilo objašnjeno kako se koristi tako da sam odmah prešao na Syntax a ni tamo nije bilo (naj)objašnjeno zato sam potražio neki artikal na netu....

Inače tvoj post mi je mnogo pomogao :) s je tačno ono što mi je trebalo :}

Mada i dalje ne kontam zašto ne radi (*+) al nema veze.

Inače ako nekoga zanima kod izgleda ovako
Code:
$str = preg_replace("/(\[b\])(.+)(\[\/b\])/iUs","<b>\\2</b>",$str);


Saću da napišem ceo BCCode,Hvala još jednom :}
[ CONFIQ @ 07.12.2002. 22:17 ] @
Ja sam završio skoro ceo BBCode al mi je ostalo Auto Pharsing URL's,ovaj deo koda sam pojednostavio najviše što mogu al ni to ne radi,veoma je slučan prošlom kodu :C

$str = preg_replace("/(www)(.+)/iU","NaNaNa",$str);

neće da radi čak ni ako ukucam www.bzvze

[ -zombie- @ 08.12.2002. 00:02 ] @
mislim da je gojko postovao kompletan regex u (valjda) predlozi i pitanja forumu (naslov valjda asocira na to). to je regex koji on koristi ovde...

a ti nisi napisao sta se desi? ne zameni nista? ili lose zameni?

za ovo probaj:

Code:

$str=preg_replace('!(www.|http://)[\w\./\?\=\%\&]+!iU", "NaNa", $str);


ovo bi trebalo da radi najcesce... fale mu josh neki znaci koji su dozvoljeni u url-u. dodaj ih u onu klasu (izmedju [ i ] znakova)...
[ CONFIQ @ 08.12.2002. 18:26 ] @
Već 4 sata pokušavam da skontam al ne ide :(
Pokušao sam tvoj kod al ovaj deo [\w\./\?\=\%\&]+ ti ne radi ;(
on ustvari samo 'shvati' prvo slovo a ostatak slova ih igoriše

Našao sam nešto pa ću malo da se igram sa tim dok ne skontam,ali ovo je eregi_replace što nisam hteo al nema veze

Code:
 $str = ereg_replace("((ftp://)|(http://)|(mailto:)|(news:)|(https://))(([[:alnum:]]|[[:punct:]])*)", "1=\\1<br>2=\\2<br>3=\\3<br>4=\\4<br>5=\\5<br>6=\\6<br>7=\\7<br>8=\\8<br>0=\\0<br>Kraj",$str);
[ -zombie- @ 08.12.2002. 20:57 ] @
sorry. ovo radi, ali je ovde visak onaj Ungreedy modifier.

probaj opet bez U na kraju... radi sto posto, rekoh ti ;)