<p>Bocs, hogy belepof, de a feladatra teljesen jo a regex, csak a feladatfelvetes bena volt.</p>
<p>A kigyujtesre a regex: (:[a-z0-9])</p>
<p>Az idezojelek kozti reszeket meg siman uritheted.</p>
<p>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.</p>
<p>A tokenizalas jo otlet, a regexszel kigyujtott talalatokat vegig lehet keresgelni.</p>
<p>Ezt a levelet telefonról adták fel ezért esetenként ékezethibákat tartalmazhat.</p>
<p>Garami Gábor<br>
E-mail: <a href="mailto:gabor.garami@hron.me">gabor.garami@hron.me</a><br>
Web: <a href="http://hron.me">http://hron.me</a><br>
Skype: hron84<br>
MSN: <a href="mailto:hrgy@vipmail.hu">hrgy@vipmail.hu</a></p>
<div class="gmail_quote">2012.01.03. 18:11, "Tamás Magyar" <<a href="mailto:magyusz@gmail.com">magyusz@gmail.com</a>> ezt írta:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Nem tudom, hogy erre ez a legjobb megoldás, de StreamTokenizer helyett<br>
ajánlom ezt:<br>
<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html" target="_blank">http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html</a><br>
Én már sikerrel használtam.<br>
<br>
Magyusz<br>
<br>
2012/1/3 Suller Andras <<a href="mailto:suller.andras@gmail.com">suller.andras@gmail.com</a>>:<br>
> 2012/1/3 Keresztes Jozsef <<a href="mailto:jkeresztes@vati.hu">jkeresztes@vati.hu</a>>:<br>
>> Sziasztok !<br>
>><br>
>> Egy sql stringen belül keresek egy másik stringet, a Matcher és Pattern osztályok segítségével,<br>
>> egyszerüsítsük a dolgot, csak a ":" karaktert keressük:<br>
>><br>
>> Matcher matcher = Pattern.compile(":").matcher(sqlString);<br>
>><br>
>> 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:<br>
>><br>
>> SELECT 'ez nem'':kell' FROM valami WHERE id = :id and ':' = 'x'<br>
>><br>
>> Vagyis itt a 2. kettőspont lenne csak találat a többi nem.<br>
>> Valaki foglalkozott már ilyen keresési minta megírásával ?<br>
>> Én egyelőre nem tudom elképzelni...<br>
><br>
> Regen hasznaltam mar, de azt hiszem a StreamTokenizer az, ami kezeli<br>
> ezt a problemat. Marmint hogy az '...' szovegreszt egy tokenkent adja<br>
> vissza, igy meguszod a regularis kifejezest.<br>
><br>
> Andras<br>
> _______________________________________________<br>
> Javalist mailing list<br>
> <a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br>
> <a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
</blockquote></div>