Prendi i primi versetti di Genesi, in ebraico, ad esempio:
בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ׃
וְהָאָ֗רֶץ הָיְתָ֥ה תֹ֙הוּ֙ וָבֹ֔הוּ וְחֹ֖שֶׁךְ עַל־פְּנֵ֣י תְה֑וֹם וְר֣וּחַ אֱלֹהִ֔ים מְרַחֶ֖פֶת עַל־פְּנֵ֥י הַמָּֽיִם׃
וַיֹּ֥אמֶר אֱלֹהִ֖ים יְהִ֣י א֑וֹר וַֽיְהִי־אֽוֹר׃
וַיַּ֧רְא אֱלֹהִ֛ים אֶת־הָא֖וֹר כִּי־ט֑וֹב וַיַּבְדֵּ֣ל אֱלֹהִ֔ים בֵּ֥ין הָא֖וֹר וּבֵ֥ין הַחֹֽשֶׁךְ׃
וַיִּקְרָ֨א אֱלֹהִ֤ים ׀ לָאוֹר֙ י֔וֹם וְלַחֹ֖שֶׁךְ קָ֣רָא לָ֑יְלָה וַֽיְהִי־עֶ֥רֶב וַֽיְהִי־בֹ֖קֶר י֥וֹם אֶחָֽד׃ (פ)
(That (פ)
per qualche motivo non è formattato correttamente nel blockquote, ma lo fa nel mio file di testo.)
Ora vorrei spogliare questo testo di tutti i caratteri tranne l'alfabeto ebraico standard di 27 lettere אבגדהוזחטיכךלמםנןסעפףצץקרשת
, più le interruzioni di riga (che Script Editor analizza automaticamente come \n
) e le interruzioni di riga e paragrafo ( :
e (פ)
o (ס)
). Noterai su più righe che ci sono trattini - quelli dovrebbero essere sostituiti con uno spazio. Alcune linee contengono anche |
- quelle dovrebbero essere sostituite con un singolo . Al termine, dovrebbe essere simile a:
בראשית ברא אלהים את השמים ואת הארץ׃
והארץ היתה תהו ובהו וחשך על פני תהום ורוח אלהים מרחפת על פני המים׃
ויאמר אלהים יהי אור ויהי אור׃
וירא אלהים את האור כי טוב ויבדל אלהים בין האור ובין החשך׃
ויקרא אלהים לאור יום ולחשך קרא לילה ויהי ערב ויהי בקר יום אחד׃ (פ)
Ho provato qualcosa di semplice all'inizio - imposta l'alfabeto ebraico più ,
(
e )
a un elenco, imposta x
sulla lunghezza della stringa immessa, quindi esegui una ripetizione per ogni carattere della stringa: se è presente nell'elenco, quindi aggiungerla all'output; se è un -
, aggiungi all'output; se è un
\
e il prossimo è un n
, aggiungi \n
all'output; e se ci sono due spazi in una riga, cancella il secondo.
Ho registrato l'output e ottenuto alcune parole senza senso:
(*אאית א ים ת ם ת ץץץץץץץץ ה הה הה ללללי ם ים ת ללללי םםםםםאאר ים י ר ייייררררררא ים תתתתתר ייייב ל ים ין ר ין א ים אאא ם א ה ייייב ייייר ם דד (פ)*)
che sembra essere ogni lettera nel passaggio senza una vocale, duplicata nel caso in cui la seguente lettera (s) fa. (Il mio errore nelle ripetizioni - ha scritto il ciclo ripetuto male.) Ma salta le consonanti che hanno anche vocali è ciò che mi ha lasciato a chiedermi.
Quindi ho fatto un test:
set charNum to ASCII number "בְּ"
log charNum
set charNum to ASCII number "ב"
log charNum
-->result: (*63*) (*63*)
Sebbene nell'editor di testo, le vocali e simili siano caratteri separati sovrapposti a quelli precedenti, Script Editor non la vede in questo modo e vede בְּ e ב come la stessa lettera. Eppure, confrontandolo con la mia lista, non riconosce il personaggio e lo salta.
Quindi, come posso togliere le vocali e le espressioni simili dalle lettere senza fare un ciclo if per qualsiasi combinazione di lettere e vocali possibile?