|
[ sasho.new @ 05.03.2012. 17:45 ] @
| Potreban mi je proveren regexp koji može da pronađe zareze u okviru SVIH zagrada i zameni ih sa tab-ovima t.j. \t. Dakle nešto poput:
Code: neki, tekst, (p1, p2, p3) neki tekst, tekst, (p1, p2, p3)
treba da postane
Code: neki, tekst, (p1\t p2\t p3) neki tekst, tekst, (p1\t p2\t p3)
Zarezi VAN zagrada treba da ostanu netaknuti.
Ako neko ima provereno rešenje za ovaj problem neka mi se javi (može i na [email protected]).
Hvala unapred.
[Ovu poruku je menjao sasho.new dana 05.03.2012. u 20:38 GMT+1] |
[ plus_minus @ 05.03.2012. 18:10 ] @
Kad god možeš, gde god možeš, koristi str_replace() funkciju. Brže radi i mnogo jednostavnije za korišćenje nego regexp.
Code (php):
$var = 'neki tekst (p1, p2, p3) neki tekst';
$var = str_replace(',', "\t", $var);
echo $var;
Ako imaš dakle želju da ostaviš ostale zareze koji se pojavljuju van zagrade, netaknute, nepromenjene, treba ti još jedna linija koda i dobićeš to što tražiš.
Tu jednu liniju koda probaj sam da izmućkaš.
Ako neće a dao si sve od sebe, pusti kod da vidimo gde si zapeo.
[ sasho.new @ 05.03.2012. 18:19 ] @
Vaš primer bi zamenio SVE zareze u tekstu, kao što i sami primećujete, sa tabovima. To nije ono što je opisano u temi no hvala na sugestiji.
[ plus_minus @ 05.03.2012. 18:22 ] @
NEma na čemu..
Citat: Ako imaš dakle želju da ostaviš ostale zareze koji se pojavljuju van zagrade, netaknute, nepromenjene, treba ti još jedna linija koda i dobićeš to što tražiš.
Tu jednu liniju koda probaj sam da izmućkaš.
Ako neće a dao si sve od sebe, pusti kod da vidimo gde si zapeo
Inače, ti i nemaš druge zareze osim tih 2 koji se nalaze u zagradi.
Bez obzira, razumeo sam ja tebe perfekt.
Bacaj se na posao. 
[ sasho.new @ 05.03.2012. 18:27 ] @
tačno, izmenio sam original ;)
[ plus_minus @ 05.03.2012. 19:20 ] @
Ne znam dokle si stigao.. i da li si pokušao nešto uopšte, nije ni bitno.
Sve u svemu, malo sam te izlagao. Nije baš jedna linija, ali je blizu. :)
Evo ti ovo dole u code tagu, a ti, ako ti ne ide baš rad sa string funkcijama,
uzmi i daj sebi jedan zadatak na kontu priloženog u code tagu, za početak.
A zadatak neka bude sledeći: napravi sebi jednu funkciju pomoću priloženog.
Funkciju koja će da vrši izmenu na osnovu onoga što promenjiva $tab sadrži u sebi.
Pozz.
Code (php):
$var = 'neki, tekst, (p1, p2, p3) neki tekst, tekst,';
$tab = "\t";
$start = '(';
$end = ')';
$brExtr1 = substr( strpbrk ( $var, $start ), 1 );
$PosEnd = strpos ( $brExtr1, $end);
$brExtr2 = substr ( $brExtr1, 0, $PosEnd );
$varRpl = str_replace ( ',', $tab, $brExtr2 );
$var = str_replace( $brExtr2, $varRpl, $var );
echo $var;
Da dodam još jednu bitnu sitnicu.. ovo radi ako je u pitanju samo jedna zagrada i unutra zarezi.
Ne verujem da hoće i drugu zagradu sa zarezima da zameni, što opet, neće biti veliki problem da rešiš.
[Ovu poruku je menjao plus_minus dana 05.03.2012. u 20:42 GMT+1]
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|