[Javalist] RegExp probléma: nem aposztrófok közé zártak felismerése

Gábor Lipták gabor.liptak at gmail.com
2013. Dec. 1., V, 17:55:15 CET


http://www.mkyong.com/spring/spring-named-parameters-examples-in-simplejdbctemplate/


2013. december 1. 17:42 József Keresztes írta, <xesj.hu at gmail.com>:

> Sziasztok !
>
> Megnéztem és mivel úgy kb. 300 ember van ezen a levelezőlistán, ennyi
> embernek kell hogy legyen frappáns ötlete egy látszólag
> egyszerű probléma megoldására. A problémát már régebben is felvetettem, de
> akkor nem született igazi megoldás,
> és mivel én sem oldottam meg azóta (mert nem elég elegánsak a megoldások),
> újra próbálkozom.
>
> Arról van szó hogy egy SQL stringben kettősponttal jelöljük a
> paramétereket például:
>
> String originalSql = "select * from telepules where kod = :x";
>
> Mivel a JDBC-ben nincs ":x" ezért "?" -re kell alakítani. Erre a megoldás
> egyszerű, régen alkalmazom a következő kódot:
>
> Matcher matcher = Pattern.compile(":[a-z_0-9]+",
> Pattern.CASE_INSENSITIVE).matcher(originalSql);
>
> majd a matcher.find() -dal mindent meg lehet oldani, a "?"-es cserét stb.
>
> Azonban a probléma jelentkezik például egy ilyen sql-nél:
>
> String originalSql = "select to_char(datum,'hh24:mi:ss') from telepules
> where kod = :x";
>
> Sajnos az előző pattern-es megoldás nem tudja figyelembe venni hogy
> aposztrófok között van a :mi és a :ss ezeknek nem kellene megfelelni
> a feltételeknek, csak a :x -nek, csak az utóbbit kellene ?-re cserélni.
>
> Szóval számomra az lenne az elfogadható frappáns megoldás ha ezt kizárólag
> a regexp kifejezés átírásával lehetne megoldani.
>
> Ha van erre valakinek megoldása azt szívesen fogadnám.
>
> Joe
>
>
> _______________________________________________
> 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/20131201/2b295ff5/attachment.html>


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