[Javalist] 'Pattern'

Keresztes Jozsef jkeresztes at vati.hu
2012. Jan. 4., Sze, 09:28:06 CET


A feladatfelvetés nem volt béna, az én forrásom ilyen volt már a kérdés felvetése előtt is régóta:

 

Matcher matcher = Pattern.compile(":[a-z_0-9]+", Pattern.CASE_INSENSITIVE).matcher(sql);

 

De a lényeg az hogy a bonyolítás elkerülése miatt a feladat ugyanaz mintha meg kéne

állapítani hogy egy „:” vagy egy „bolha” idézőjelek között van vagy sem. 

 

From: Gábor Garami [mailto:gabor.garami at hron.me] 
Sent: Tuesday, January 03, 2012 7:28 PM
To: Java lista
Subject: Re: [Javalist] 'Pattern'

 

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󬠡dt᫠fel ez鲴 esetenk鮴 髥zethib᫡t tartalmazhat.

Garami G᢯r
E-mail: gabor.garami at hron.me
Web: http://hron.me
Skype: hron84
MSN: hrgy at vipmail.hu

2012.01.03. 18:11, "Tam᳠Magyar" <magyusz at gmail.com> ezt �a:

Nem tudom, hogy erre ez a legjobb megoldᳬ de StreamTokenizer helyett
ajᮬom ezt:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html
ɮ mᲠsikerrel haszn᬴am.

Magyusz

2012/1/3 Suller Andras <suller.andras at gmail.com>:
> 2012/1/3 Keresztes Jozsef <jkeresztes at vati.hu>:
>> Sziasztok !
>>
>> Egy sql stringen bell keresek egy mᳩk stringet, a Matcher 鳠Pattern osztᬹok seg�駩vel,
>> egyszers�k a dolgot, csak a ":" karaktert keressk:
>>
>> Matcher matcher = Pattern.compile(":").matcher(sqlString);
>>
>> A probl魡 azzal van hogy csak azokat a ":" karaktereket szeretn魠megkeresni az sql stringben ami nem aposztr󦯫 k��t van p鬤ᵬ:
>>
>> SELECT 'ez nem'':kell' FROM valami WHERE id = :id and ':' = 'x'
>>
>> Vagyis itt a 2. kett��nt lenne csak talᬡt a t�� nem.
>> Valaki foglalkozott mᲠilyen keres鳩 minta meg�sᶡl ?
>> ɮ egyel��nem tudom elk鰺elni...
>
> 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/20120104/53dd2fb1/attachment.html>


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