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

Zsombor gzsombor at gmail.com
2013. Dec. 2., H, 12:55:41 CET


Áhh, szóval ez a mazochizmus minősített esete akkor :)


2013/12/2 József Keresztes <xesj.hu at gmail.com>

> 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
>>
>>
>
> _______________________________________________
> 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/61907320/attachment.html>


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