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

József Keresztes xesj.hu at gmail.com
2013. Dec. 2., H, 12:43:57 CET


Sajnos ragaszkodom a kettősponthoz :) de természetesen én is gondoltam
ilyen jópofa jelölésekre.


2013. december 2. 12:41 Zsombor írta, <gzsombor at gmail.com>:

> Látom mindenki nagyon belemelegedett a regexpekbe, de lehet, hogy ha
> hátrébb lépnénk 3 lépést, és végig gondolnánk a problémát, találhatnánk egy
> egyszerűbb megoldást.
>  Mondjuk lehet egyszerűbb lenne a helyzet, ha nem ilyen gyakori karakter
> lenne az escape szekvencia, hanem mondjuk %%%paraméter%%% ?
> Erre biztos egyszerűbb regexpet írni ;)
>
> Üdv
>  Zs
>
>
> 2013/12/2 József Keresztes <xesj.hu at gmail.com>
>
>> Ha ez a regexp
>> ^((?:[^']*'[^']*')+[^']*):[a-z]+
>> működik az nagyon szép megoldás lenne.
>>
>> Ha nem akkor azt a megoldást tudom elképzelni hogy marad az eredeti
>> regexp, amit az első levélben írtam, de kombinálnám azzal hogy előszőr
>> végigmegyek a string-en, és egy boolean tömbben minden karakter
>> pozicióra  letenném hogy páros vagy páratlan számú aposztróf volt ezidáig.
>> Amikor a regexp általi találatokon végigfutok, csak a tömbből kéne
>> vizsgálni hogy páros számú aposztróf volt e idáig ezen a pozíción. Ha igen
>> akkor "valódi" paraméter mely "?"-el helyettesítendő.
>>
>> Egyébként köszönöm mindenkinek a sok választ.
>>
>> Azért abban erősítsetek meg, tényleg igaz-e, hogy a ":x" valóban
>> paraméter abban az esetben ha páros számú aposztróf fordult elő őt
>> megelőzően ?
>>
>> Joe
>>
>>
>> 2013. december 2. 10:55 Suller Andras írta, <suller.andras at gmail.com>:
>>
>> Ebben az esetben aligha fogod tudni elkerulni, hogy a regularis
>>> kifejezesben "szamold" az aposztrofokat a szoveg elejetol kezdve. Ami
>>> azt jelenti, hogy valoszinuleg a feldolgozot is modositanod kell majd.
>>> Egy ilyen regex peldaul csak az aposztrofon kivuli azonositokat ismeri
>>> fel (kihasznalva azt, hogy SQL-ben az aposztrofot dupla aposztroffal
>>> kell escape-elni):
>>> ^((?:[^']*'[^']*')+[^']*):[a-z]+
>>>
>>> Javascript-ben igy lehet hasznalni peldaul (ezen a gepen nincs java,
>>> de gondolom ott is hasonlo):
>>> > s="SELECT 'ez nem'':kell' FROM valami WHERE id = :id and ':' = 'x' or
>>> p.id=:pid and p.selected"
>>> > s=s.replace(/^((?:[^']*'[^']*')+[^']*):[a-z]+/, '$1?')
>>> 'SELECT \'ez nem\'\':kell\' FROM valami WHERE id = :id and \':\' =
>>> \'x\' or p.id=? and p.selected'
>>> > s=s.replace(/^((?:[^']*'[^']*')+[^']*):[a-z]+/, '$1?')
>>> 'SELECT \'ez nem\'\':kell\' FROM valami WHERE id = ? and \':\' = \'x\'
>>> or p.id=? and p.selected'
>>>
>>> Viszont en erre nem mondanam, hogy elegans...
>>>
>>> Andras
>>>
>>> 2013/12/2 József Keresztes <xesj.hu at gmail.com>:
>>> >> Milyen karakterek lehetnek a : elott? Ha csak szokoz, akkor az
>>> segithet.
>>> >
>>> > Bármilyen karakter állhat. pl:   oszlopnev||:x
>>> >
>>> > De az aposztrófon belül is lehet hogy van szóköz, lehet hogy nincs.
>>> >
>>> >
>>> > 2013/12/2 Suller Andras <suller.andras at gmail.com>
>>> >>
>>> >>
>>> >> On Dec 1, 2013 11:43 PM, "József Keresztes" <xesj.hu at gmail.com>
>>> wrote:
>>> >> > String originalSql = "select * from telepules where kod = :x";
>>> >>
>>> >> Milyen karakterek lehetnek a : elott? Ha csak szokoz, akkor az
>>> segithet.
>>> >>
>>> >> 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
>>> >
>>> _______________________________________________
>>> 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
>>
>>
>
> _______________________________________________
> 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/20131202/f7819518/attachment.html>


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