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

_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem