[python] [:lower:] apod.?

Alexandr Rosen alexandr.rosen na ff.cuni.cz
Pátek Únor 1 22:02:06 CET 2008


Ahoj!

Diky vasi pomoci uz umim vyrobit unicodove stringy s pismenky z ruznych sad. Jsou tam jenom znaky,
ktery potrebuju: zapadni a stredni Evropa, Balt a cyrilice, funguje to v locale UTF-8 (linux). V
Unicodu je znaku az moc, tak vybiram podle jednobytovych sad.

locale.setlocale(locale.LC_CTYPE, 'cs_CZ')

letterchars_CE = ur'[%s]' % string.letters.decode('cp1250')
letterchars_CY = ur'[%s]' % string.letters.decode('cp1251')
letterchars_WE = ur'[%s]' % string.letters.decode('cp1252')
letterchars_BA = ur'[%s]' % string.letters.decode('iso-8859-4')
letterchars_ALL = letterchars_CE + letterchars_CY + letterchars_WE + letterchars_BA
letterchars0 = "".join(sorted(set(list(letterchars_ALL))))

Proc mixuju cp s iso? V iso-8859-5 chybi jeden znak pro ukrajinstinu, v tabulce cp1257 (baltske
jazyky) zas funkci codecs.charmap_decode vadi nedefinovana pozice.

I tak se tam ale dostane par murich noh, nepismena. Pri tehle sestave je vyhazuju takhle:

letterchars = letterchars0[0:26] + letterchars0[28:54] + letterchars0[75:-1]

lowercase = string.lower(letterchars)
uppercase = string.upper(letterchars)

Treba to nekdy nejakemu dalsimu drvostepovi jako ja k necemu bude.

Jeste jednou diky!

A.R.

>> 1. Jak udelat, aby v tom re_lower byly vsecky lowercase znaky z
>> UTF-8? Tedy nejen ty z cp1250 nebo iso-8859-2, ale i iso-8859-1,
>> iso-8859-5 (cyrilice), rectina, to by mozna uz stacilo... Spojit ty
>> stringy a vyhodit duplicity? Nebo by to slo nejak jednodusejs?
>
> spojit leda po prevedeni do unicode, pac ty hex-escaped znaky davaji
> smysl jen pro dane kodovani. nebo projet celou unicode tabulku jako
> vespod [1]





Další informace o konferenci Python