Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ahhh ti regularni izrazi

[es] :: Skript jezici :: Ahhh ti regularni izrazi

[ Pregleda: 2437 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.red.bezeqint.net

ICQ: 82327428


+10 Profil

icon Ahhh ti regularni izrazi10.06.2003. u 02:40 - pre 254 meseci
I taman kad pomislim „Evo, sada bar nešto malo znam” ispada da nemam pojma :)

Naime, evo jedan najprostiji primer

$msg1 = preg_replace('#\[ u](.+?)\[ /u]#is', '<u>$1</u>', $msg1);
Ovo lepo radi ali ne kad su tagovi spojeni.Odnosno ako se unutar [ u] nalazi još jedan [ u].
Primer:
[ u]Under[ u] line[ /u][ /u]
Printuje ovo:
Under[ u] line[ /u]
A hoću ovako baš kako je na ESu:
Under line.

Meni ovo ne bi smetalo ovoliko ali problem je sa Quote.
Kad neko dva puta citira onda u opšte ne persuje drugi citat nego ga lepo pokaže kao UBBC kôd.
Razmišljao sam da stavim jedan while... naprimer:

while (preg_match('#\[ u](.+?)\[ /u]#is', '<u>$1</u>', $msg1)) {
Ali problem je što imam još mnogo tagova i + će da usporava ako je veliki txt.

Nemam pojma kako da rešim ovo, baš dosta vremena sam proveo da napravim kako treba ali ne ide :(


~Say FiQ
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.habil.is

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Ahhh ti regularni izrazi10.06.2003. u 13:13 - pre 254 meseci
Zasto zamenjujes otvoren ([ u]) i zatvoren ([/ u]) tag u isto vreme? Probaj da zamenis sve [ u] tagove u stringu pa onda [ /u] tagove (koristi switch g). Tako neces imati problema sa ugnjezdenim tagovima.

Poz,
alex.
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.red.bezeqint.net

ICQ: 82327428


+10 Profil

icon Re: Ahhh ti regularni izrazi10.06.2003. u 15:01 - pre 254 meseci
Nisam naveo da koristim razmak između [ tagova] tako da bi bila čitljivija poruka.
Alex:
Čitao sam sve „switcheve” ovde i čitajući skontao sam da PHP automatski stavlja g „Modifikator” (ili kako već da ga nazovem).
A kad stavim g kaže mi:

Warning: Unknown modifier 'g' in /njanja/home.php on line 51


~Say Sad FiQ
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.yubc.net

Sajt: localhost


+5 Profil

icon Re: Ahhh ti regularni izrazi10.06.2003. u 16:18 - pre 254 meseci
a da probaš sa U modifierom.. ungreedy
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.habil.is

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Ahhh ti regularni izrazi10.06.2003. u 16:48 - pre 254 meseci
Sorry, CONFIG, razmisljao sam u Perl modu.. ;)

Ipak, moj predlog jos uvek stoji, menjaj tagove jedan po jedan (a ne komplete). Takodje, mozes sve tagove da ubacis u array, i onda da sa preg_replace() zamenis sva pojavljivanja svih tagova iz tog niza sa drugim nizom u kome imas svoje vrednosti.
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Ahhh ti regularni izrazi10.06.2003. u 17:13 - pre 254 meseci
Danilo je pre neki dan poslao gotov kod za parsiranje UBB koda... Predlazem da ga pogledas, mozda ti pomogne.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-3.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: Ahhh ti regularni izrazi10.06.2003. u 17:15 - pre 254 meseci
CONFIQ, a ne odgovara ti onaj parser koji sam stavio u PHP forum?

Odlično podržava ugnježdavanje, ukupno jedan prolaz (pa je brže od svakog mogućeg parsera koji zamenjuje pomoću regexp-a), i lako je proširiv.

dopuna: Evo, Leka je već rekao sve, pa 'ajde da ja dam i direktan link:
http://www.elitesecurity.org/tema/23874
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.red.bezeqint.net

ICQ: 82327428


+10 Profil

icon Re: Ahhh ti regularni izrazi10.06.2003. u 18:36 - pre 254 meseci
Citat:
alex:
Zasto zamenjujes otvoren ([ u]) i zatvoren ([/ u]) tag u isto vreme? Probaj da zamenis sve [ u] tagove u stringu pa onda [ /u] tagove (koristi switch g). Tako neces imati problema sa ugnjezdenim tagovima.

Poz,
alex.

Uhhh tek sad sam pročitao poruku kako treba.Pa gledam da li su zatvoreni tagovi zato što ne koristim samo za [ u] već ima nekih tagova koji moraju da budu zatvoreni a ako ne bi zatvorio neke upropastilo bi ceo izgled (np. [url])


-zombie-: Vidiš, probao sam i sa Ungreedy ali ne ide.Doduše malo je drugačije ali isto ne persira ugnječene tagove :(

Danilo: Što se tiče tvog kôd-a poslaću poruku na datom forumu

Conclusion: Izgleda da se UBBCôd ne može napisati bez ijedne petlje.Jako mrzim kad se petljam sa petljama ali moraću bar jedan while(preg_match za ovu glupost. Nadam se da neće da uspori celu PHP skriptu.

Hvala svima na odgovorima!

~Say FiQ



 
Odgovor na temu

[es] :: Skript jezici :: Ahhh ti regularni izrazi

[ Pregleda: 2437 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.