[ afwt @ 21.02.2003. 14:17 ] @
Da li zna neko kako mogu u velikom stringu da skinem (ili jos bolje, zamenim tekstom 'N/A') sve sto je unutar znakova {}?

Napominjem da mi unutar zagrada stoje imena varijabli bez znaka $, znaci slova, brojevi i '_'.


Pokusavao sam nesto oko regexp-a, ali je komplikovan, pa mi nije islo... A mislim da drugacije ne moze.

P.S. strlen($source) > 2000


Unapred hvala...
[ CONFIQ @ 21.02.2003. 14:46 ] @
$str = preg_replace("/(.+{)(.+)(}.+)/iU","\\1{N/A}\\3",$str);

Nisam siguran da će da radi ali pokušaj .Đ
-zombie- je jako dobar u ovome,nek me ispravi ako grešim.
[ Gojko Vujovic @ 21.02.2003. 15:21 ] @
Nije dobar, duplira {} zagrade..

Ovaj je bolji rekao bih a i jednostavniji:

$str = preg_replace("/{(.*)}/U","{N/A}",$str);
[ -zombie- @ 21.02.2003. 17:37 ] @
confiq: heh, pa nisam bash tolko dobar, kao neki perl-ovac, mada da perl sintaxa nije toliko ruzna, ne bih imao problema ni sa njim (perlom).. ;)


gojko: pa i tvoj ostavlja { i } zagrade (mada nisam siguran da li ih covek oce). za slucaj da ih nece, evo resenja:

Code:

$str = preg_replace('~{\w+}~U', 'N/A', $str);



moze i bez (zagrada) gojko ;) - jednostavnije, a i preciznije je koristiti \w word karaktere, jer tad nece parsirat {ovako nesto}, sto valjda i ne treba. a i bolji je + umesto *, jer verovatno ne zeli da se {} zameni...
[ Gojko Vujovic @ 21.02.2003. 21:32 ] @
Zombie ne valja ti to procitaj sta je covek rekao, citiram:

"Da li zna neko kako mogu u velikom stringu da skinem (ili jos bolje, zamenim tekstom 'N/A') sve sto je unutar znakova {}?"

Znaci sve sto je UNUTAR ZNAKOVA {} da se zameni sa N/A a da ostavi te znakove {} netaknute.

Ne da ih duplira kao confiq-ovo resenje.

Ne da ih ukloni, kao sto je tvoje resenje.

Takva je barem bila postavka..

Sa +om se slazem, bolje je.. ostalo ne.
Moj novi predlog posle zombie-modifikacije:

$str = preg_replace("/{.+}/U","{N/A}",$str);
[ afwt @ 21.02.2003. 23:53 ] @
E, ljudi, vi niste normalni... ;-)

Stvarno se nisam nadao ovakvom brzinom odgovora, stvarno ste maheri...

HVALA VAM PUNO!!!!

Nisam jos ni proverio, ali vam verujem, dovoljno mi je da zavrsim...

CHEERS!!!
[ afwt @ 21.02.2003. 23:59 ] @
I znao sam da cu se pogreno izraziti (uvek u glavi sve bolje/razumnije zvuci)... ;-)

Trazio sam varijantu:

'{biloshta}' => 'N/A'

Mislim da ce -zombi- solution raditi...

Hvala puno svima u svakom slucaju...

P.S. Nema veze ako preg zamenim za ereg, zar ne?? Mislim da mi u lokalu nesto ne radi oko preg-a u EasyPHP-u.
[ -zombie- @ 22.02.2003. 00:18 ] @
Citat:

Trazio sam varijantu:

'{biloshta}' => 'N/A'

Mislim da ce -zombi- solution raditi...


gojko: NJA NJA NJA NJA NJA -- NJA! ;D lol


elem, ima poprilicno razlike izmedju preg (pcre) i ereg (posix compatible). preg je prilicno mocniji (potekao iz perla).

ja nisam siguran da ti ovo prevedem u ereg, mada ne bi trebalo da je mnogo razlicito od

Code:

$str=ereg_replace('{[^}]+}', 'N/A', $str);


vidish da mora posebno da se navede da ne ukljuci '}' u okviru paterna, zato sto posix regex nemaju modifiere (pa samim tim i /U ungreedy modifier).


ja bih ti ipak preporucio da se potrudish i ukljucish pcre regex u tvoj php (mada koliko ja znam bi ipak trebali biti ukljuceni po default. koji php imash? verzija?)

poz.
[ afwt @ 22.02.2003. 01:44 ] @
Ukljuceni su, nesto sam ja izbrljavio...

Hvala ti puno...
[ darkoPOKLONCIC @ 22.02.2003. 15:47 ] @
gdje mogu nac pravila za sklapanje tih regexpa?

zvuci ko znanstvena fantastika...krizaljka...jednadzbe... :)
[ darkoPOKLONCIC @ 22.02.2003. 16:55 ] @
a negdje na netu?

nesto tipa: 'ukratko' i tsl?...


trazio sam i ne nasao bas nesto smisleno...
[ CONFIQ @ 22.02.2003. 17:10 ] @
http://www.zend.com/zend/tut/tutorial-delin2.php
[ FlatLine @ 22.02.2003. 18:47 ] @
http://txt2regex.sourceforge.net/
[ -zombie- @ 22.02.2003. 23:03 ] @
darko: pogledaj (potrazi i procitaj) knjigu Mastering Regular Expressions od O'Raylija. imash linkove bash skoro objavljene u Vodic za Ucenje forumu ovde. nije bash "kratka", ali vredi svaku stranicu (valjda nekih 200-300).

mada je za osvnovne potrebe dovoljan i php manual, glava o regularnim izrazima http://php.net/pcre