[Javalist] 'Pattern'

Gábor Garami gabor.garami at hron.me
2012. Jan. 3., K, 19:27:42 CET


Bocs, hogy belepof, de a feladatra teljesen jo a regex, csak a
feladatfelvetes bena volt.

A kigyujtesre a regex: (:[a-z0-9])

Az idezojelek kozti reszeket meg siman uritheted.

Bar megmondom oszinten, ilyen string ertelmes sql queryben nem fordul elo,
idezojelek kozott sem. Mivel preprocessben hasznalod fel a regexet, igy
ilyenkor meg nincs untrusted user input, utana meg mar mindegy. Csak
magadat kell korlatoznod, hogy ne akarj olyat irni, hogy SELECT * FROM
valami WHERE ':bla' = :bla. IMHO ez igy kb. sosem fordul elo.

A tokenizalas jo otlet, a regexszel kigyujtott talalatokat vegig lehet
keresgelni.

Ezt a levelet telefonról adták fel ezért esetenként ékezethibákat
tartalmazhat.

Garami Gábor
E-mail: gabor.garami at hron.me
Web: http://hron.me
Skype: hron84
MSN: hrgy at vipmail.hu
2012.01.03. 18:11, "Tamás Magyar" <magyusz at gmail.com> ezt írta:

> Nem tudom, hogy erre ez a legjobb megoldás, de StreamTokenizer helyett
> ajánlom ezt:
> http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html
> Én már sikerrel használtam.
>
> Magyusz
>
> 2012/1/3 Suller Andras <suller.andras at gmail.com>:
> > 2012/1/3 Keresztes Jozsef <jkeresztes at vati.hu>:
> >> Sziasztok !
> >>
> >> Egy sql stringen belül keresek egy másik stringet, a Matcher és Pattern
> osztályok segítségével,
> >> egyszerüsítsük a dolgot, csak a ":" karaktert keressük:
> >>
> >> Matcher matcher = Pattern.compile(":").matcher(sqlString);
> >>
> >> A probléma azzal van hogy csak azokat a ":" karaktereket szeretném
> megkeresni az sql stringben ami nem aposztrófok között van például:
> >>
> >> SELECT 'ez nem'':kell' FROM valami WHERE id = :id and ':' = 'x'
> >>
> >> Vagyis itt a 2. kettőspont lenne csak találat a többi nem.
> >> Valaki foglalkozott már ilyen keresési minta megírásával ?
> >> Én egyelőre nem tudom elképzelni...
> >
> > Regen hasznaltam mar, de azt hiszem a StreamTokenizer az, ami kezeli
> > ezt a problemat. Marmint hogy az '...' szovegreszt egy tokenkent adja
> > vissza, igy meguszod a regularis kifejezest.
> >
> > Andras
> > _______________________________________________
> > Javalist mailing list
> > Javalist at lists.javaforum.hu
> > http://lists.javaforum.hu/mailman/listinfo/javalist
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20120103/1042fca9/attachment.html>


További információk a(z) Javalist levelezőlistáról