[python] upper a lower

Pavel Kosina geon na post.cz
Středa Leden 28 14:41:28 CET 2009


mtip napsal(a), dne 28.1.2009 13:52:
> if re.search(u'ž', u'Ž',re.IGNORECASE):
>     print 'stejne'
> else:
>     print 'ruzne'
>
> re.search s IGNORECASE - nefunguje nikdy - locale nelocale
>   

u re.IGNORECASE je v manuálu napsáno:

    [...]  This is not affected by the current locale.

nejsem si příliš jist překladem, ale snad něco jako: nefunguje v locale. 
I kdyby to tak nebylo, chybí ti tam další přepínače: 
re.UNICODE|re.LOCALE|re.IGNORECASE ....

Proč to tedy neuděláš takto, že nevynecháš "sporné" re.IGNORECASE, a 
nepoužiješ lower():

print bool(re.search(u'ž', u'Ž'.lower(),re.UNICODE|re.LOCALE))


Jen dodatek: pozor na to, že tisk někdy nefunguje proto, že nesedí 
kodování výstupu Pythonu a Shellu (ve win je to cp852). Důležitější pro 
tebe snad je, aby se to vnitřně chovalo správně, a že se to bude hůřeji 
tisknout, to je možná již podružné......

-- 

geon
Pavel Kosina



Další informace o konferenci Python