Tome los primeros versos de Génesis, en hebreo, por ejemplo:
בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ׃
וְהָאָ֗רֶץ הָיְתָ֥ה תֹ֙הוּ֙ וָבֹ֔הוּ וְחֹ֖שֶׁךְ עַל־פְּנֵ֣י תְה֑וֹםר֣וּחַ אֱלֹהִ֔ים מְרַחֶ֖פֶת עַל־פְּנֵ֥י הַמָּֽיִם׃
וַיֹּ֥אמֶר אֱלֹהִ֖ים יְהִ֣י א֑וֹר וַֽיְהִי־אֽוֹר׃
וַיַּ֧רְא אֱלֹהִ֛ים אֶת־הָא֖וֹר כִּי־ט֑וֹב וַיַּבְדֵּ֣ל אֱלֹהִ֔ים בֵּ֥ין הָא֖וֹר וּבֵ֥ין הַחֹֽשֶׁךְ׃
וַיִּקְרָ֨א אֱלֹהִ֤ים ׀ לָאוֹר֙ י֔וֹם וְלַחֹ֖שֶׁךְ קָ֣רָא לָ֑יְלָה וַֽיְהִי־עֶ֥רֶב וַֽיְהִי־בֹ֖קֶר י֥וֹם אֶחָֽד׃ (פ)
(Por alguna razón, ese
(פ)
no se está formateando correctamente en el blockquote, pero sí en mi archivo de texto)Ahora, me gustaría quitar este texto de todos los caracteres excepto el alfabeto hebreo estándar de 27 letras
אבגדהוזחטיכךלמםנןסעפףצץקרשת
, más saltos de línea (que el Editor de secuencias de comandos analiza automáticamente como\n
) y saltos de línea y párrafo (:
y(פ)
o(ס)
). Notará en varias líneas que hay guiones, que deben reemplazarse con un espacio. Algunas líneas también contienen|
, que deben reemplazarse con un solo. Cuando haya terminado, debería verse como:
בראשית ברא אלהים את השמים ואת הארץ׃
והארץ היתה תהו ובהו וחשך על פני תהום ורוח אלהים מרחפת על פני המים׃
ויאמר אלהים יהי אור ויהי אור׃
וירא אלהים את האור כי טוב ויבדל אלהים בין האור ובין החשך׃
ויקרא אלהים לאור יום ולחשך קרא לילה ויהי ערב ויהי בקר יום אחד׃ (פ)
Al principio intenté algo simple: establecer el alfabeto hebreo más
,
(
y)
en una lista, establecerx
en la longitud de la cadena ingresada, luego hacer una repetición para cada carácter de la cadena: si está en la lista, añádala a la salida; si es un-
, agreguea la salida; si es un
\
y el siguiente es unn
, agregue\n
a la salida; y si hay dos espacios en una fila, elimine el segundo.Registré la salida y obtuve algo de galimatías:
(*אאית א ים ת ם ת ץץץץץץץץ ה הה הה ללללי ם ים ת ללללי םםםםםאאר ים י ר ייייררררררא ים תתתתתר ייייב ל ים ין ר ין א ים אאא ם א ה ייייב ייייר ם דד (פ)*)
que parece ser cada letra en el pasaje sin una vocal, duplicada en el caso de que las siguientes letras lo hagan. (Mi error en las repeticiones: escribí mal el bucle de repetición). Pero el hecho de que salte sobre las consonantes que también tienen vocales es lo que me hizo preguntarme.
Así que hice una prueba:
set charNum to ASCII number "בְּ" log charNum set charNum to ASCII number "ב" log charNum -->result: (*63*) (*63*)
Aunque en el editor de texto, las vocales y similares son caracteres separados superpuestos a los anteriores, Script Editor no lo ve de esa manera, y ve בְּ y ב como la misma letra. Y, sin embargo, al compararlo con mi lista, no reconoce al personaje y lo omite.
Entonces, ¿cómo puedo eliminar las vocales y similares de las letras sin hacer un bucle if para cualquier posible combinación de letras y vocales?