[python] upper a lower
mtip
mtip na atlas.cz
Středa Leden 28 15:17:18 CET 2009
PK> u re.IGNORECASE je v manuálu napsáno:
PK> [...] This is not affected by the current locale.
PK> nejsem si příliš jist překladem, ale snad něco jako: nefunguje v locale.
PK> I kdyby to tak nebylo, chybí ti tam další přepínače:
PK> re.UNICODE|re.LOCALE|re.IGNORECASE ....
Áááá sorry beru zpět, na ty přepínače sem zapomněl.
takže re funguje i v locale i v unicode jak má:
---------------------------------------------------------------------------
# -*- coding: cp1250 -*-
import locale, re
locale.setlocale(locale.LC_ALL, '')
if re.search(u'ž', u'Ž',re.IGNORECASE|re.UNICODE):
print 'stejne'
else:
print 'ruzne'
if re.search('ž', 'Ž',re.IGNORECASE|re.LOCALE):
print 'stejne'
else:
print 'ruzne'
---------------------------------------------------------------------------
vypise 2x stejne
Asi bych očekával, že si re dokáže zjistit že předaný typ je unicode, a
že mám nastavené locale, ale budiž, třeba by to bylo pomalejší.
Takže jediné co nefunguje nikdy je string 'ž'.upper()
Asi to bude chtít používat výhradně unicodové řetězce a na výstup je
nezapomenout enkódovat, pokud je to třeba.
--
Mirek N.
Další informace o konferenci Python