2011-01-30 21 views
5

Potrzebuję listy zakresów znaków Unicode z właściwością Alphabetic zgodnie z definicją w http://www.unicode.org/Public/5.1.0/ucd/UCD.html#Alphabetic. Jednak nie mogę znaleźć ich w bazie danych Unicode, bez względu na to, jak je znajdę. Czy ktoś może podać ich listę lub po prostu funkcję wyszukiwania znaków z określonymi właściwościami Unicode?Lista znaków alfabetu Unicode

+0

Jeśli spojrzysz na moją odpowiedź, na żądanie dostarczyłem wyszukiwarkę znaków z określonymi właściwościami Unicode za pomocą [mojego skryptu Unichara ] (http://training.perl.com/scripts/unichars). Cieszyć się! – tchrist

Odpowiedz

2

Pochodne Właściwości rdzenia można obliczyć na podstawie innych właściwości.

Obiekt Alfabetyczny jest zdefiniowany jako: Generated od: Lu + LI + Lt + Lm + Lo + NI + Other_Alphabetic

Tak więc, jeśli wziąć wszystkie postacie w Lu, LI, LT, Lm, Lo, Nl i wszystkie znaki z właściwością Other_Alphabetic, będziesz mieć litery alfabetu.

2

Cytat ze źródła: Generated from: Lu + Ll + Lt + Lm + Lo + Nl + Other_Alphabetic

Te Skróty wydaje się być wyjaśnione here.

11

Baza danych znaków Unicode zawiera wszystkie pliki tekstowe w dystrybucji. To nie jest tylko pojedynczy plik, jak dawno temu.

Własność alfabetyczna jest własnością pochodną.

Naprawdę nie chcesz używać zakresów punktów kodowych dla tego. Chcesz użyć właściwości prawidłowo. To dlatego, że jest ich zbyt wielu. Korzystanie z unichars script dowiadujemy się, że istnieje więcej niż dziesięć tysięcy tylko w Basic Multilingual Plane sam nie liczenie Han lub hangyl:

$ unichars '\p{Alphabetic}' | wc -l 
    10052 

Gdybyśmy zawierać inne 16 plan astralny, teraz jesteśmy w czternastu tysiąc:

$ unichars -a '\p{Alphabetic}' | wc -l 
    14736 

A jeśli obejmują Han i Hangul, która w rzeczywistości własnością Alfabetyczny robi, po prostu wiał dach off punktów kodowych sto tysięcy:

$ unichars -ua '\p{Alphabetic}' | wc -l 
    101539 

Mam nadzieję, że widzisz, że robisz , a nie, chcesz je konkretnie wyliczyć, używając zakresów punktów kodowych. W dół tej drogi leży szaleństwo.

Nawiasem mówiąc, jeśli znajdziesz unichars script użyteczne polubisz też na a może uninames script.

+1

Bardzo podoba mi się wasze skrypty! Będą bardzo przydatne w rozwiązywaniu [pytania] (http://stackoverflow.com/questions/6246651/generate-uri-friendly-unicode-code-points-from-integer-counter), które miałem. Dziękuję bardzo za ich wykonanie. Pytanie: kiedy po prostu uruchomiłem ostatnie polecenie powyżej ('unichars -ua '\ p {Alphabetic}' | wc -l'), otrzymałem 94332 wiersze zamiast 101539. Czy jest jakiś powód? –

+1

@Abe: Prawdopodobnie nie korzystasz jeszcze z Unicode 6.0.0.Którą wersję Perl używasz? 'corelist -a Unicode' pokaże pary wersji Perla z wersjami Unicode. BTW, mam teraz w moim [Unicode toolchest] (http://training.perl.com/scripts/), z więcej na drodze. – tchrist

+0

Ach tak, używam Perl 5 nadal. Zdecydowanie ulepszę Perla i sprawdzę twoje nowe narzędzia. Dzięki! –

1

Znalazłem aplikację internetową UniView, która zapewnia przyjemny interfejs wyszukiwania. Wyszukiwanie właściwości Letter (z niezaznaczoną lokalnie) daje 14723 wyniki ...

+1

Właściwość Letter nie jest taka sama jak właściwość Alphabetic !!!! W Unicode 6.0.0 istnieje 101539 punktów kodowych z właściwością Alfabetyczny, ale tylko 100520 z właściwością Letter, różnica ponad tysiąca znaków. BTW, twoja odpowiedź 14k jest wyłączona o rząd wielkości. – tchrist

+0

Masz rację. BTW, myślę, że narzędzie UniView nie uwzględnia Han i Hangul. – thSoft

Powiązane problemy