2011-01-30 22 views
5

Necesito la lista de rangos de caracteres Unicode con la propiedad Alphabetic como se define en http://www.unicode.org/Public/5.1.0/ucd/UCD.html#Alphabetic. Sin embargo, no puedo encontrarlos en la base de datos de caracteres de Unicode, sin importar cómo los busco. ¿Alguien puede proporcionar una lista de ellos o solo una función de búsqueda para los caracteres con propiedades Unicode especificadas?Lista de caracteres alfabéticos Unicode

+0

Si mi respuesta es correcta, he solicitado su búsqueda de caracteres con propiedades Unicode especificadas a través de [mi script unichars ] (http://training.perl.com/scripts/unichars). ¡Disfrutar! – tchrist

Respuesta

2

Las propiedades del núcleo derivado se pueden calcular a partir de las otras propiedades.

La propiedad alfabética se define como: Generado a partir de: Lu + Ll + Lt + Lm + Lo + Nl + Other_Alphabetic

Por lo tanto, si se toma todos los personajes de Lu, Ll, Lt, Lm, Lo, Nl, y todos los personajes con la propiedad Other_Alphabetic, tendrás los caracteres alfabéticos.

2

citación de la fuente: Generated from: Lu + Ll + Lt + Lm + Lo + Nl + Other_Alphabetic

Estos Abreviaturas parece explicarse here.

11

La base de datos de caracteres Unicode comprende todos los archivos de texto en la distribución. No es solo un archivo como lo fue hace mucho tiempo.

La propiedad Alphabetic es una propiedad derivada.

Realmente no desea utilizar rangos de puntos de código para esto. Desea utilizar la propiedad correctamente. Eso es porque hay demasiados de ellos. Utilizando el unichars script, vemos que hay más de diez mil sólo en el plano básico multilingüe sola no conteo Han o Hangul:

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

Si incluimos los otros 16 planos astrales, ahora estamos en catorce mil:

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

y si incluimos Han y Hangul, que de hecho la propiedad alfabética hace, sólo voló el techo de un código de puntos cientos de miles:

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

Espero que pueda ver que lo hace no desea enumerar específicamente estos utilizando intervalos de puntos de código. Por ese camino yace la locura.

Por cierto, si usted encuentra el unichars script útil, que puede que al igual que el y tal vez el uninames script.

+1

¡Realmente me gustan tus guiones! Serán muy útiles para resolver una [pregunta SO] (http://stackoverflow.com/questions/6246651/generate-uri-friendly-unicode-code-points-from-integer-counter) que tuve. Muchas gracias por hacerlos. Pregunta: cuando acabo de ejecutar el último comando anterior ('unichars -ua '\ p {Alphabetic}' | wc -l'), obtuve 94332 líneas en lugar de 101539. ¿Por qué podría ser así? –

+1

@Abe: Prolly porque aún no está ejecutando Unicode 6.0.0.¿Qué versión de Perl estás ejecutando? 'corelist -a Unicode' le mostrará los emparejamientos de las versiones Perl con versiones Unicode. Por cierto, ahora tengo en mi [Unicode toolchest] (http://training.perl.com/scripts/), con más en el camino. – tchrist

+0

Ah sí, estoy ejecutando Perl 5 todavía. Definitivamente voy a actualizar Perl y verifique sus nuevas herramientas. ¡Gracias! –

1

Encontré la aplicación web UniView que proporciona una buena interfaz de búsqueda. La búsqueda de la propiedad Carta (con Local desmarcado) da 14723 resultados ...

+1

¡La propiedad Letter no es lo mismo que la propiedad Alphabetic! En Unicode 6.0.0, hay 101539 puntos de código con la propiedad Alphabetic pero solo 100520 con la propiedad Letter, una diferencia de más de mil caracteres. Por cierto, tu respuesta de 14k está desactivada en un orden de magnitud. – tchrist

+0

Tienes razón. Por cierto, creo que la herramienta UniView no tiene en cuenta a Han y Hangul. – thSoft

Cuestiones relacionadas