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