[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