1

アクセント付きの単語はすべて、アクセントを削除する必要があり、対応する番号を単語の末尾に追加する必要があります。

**例:*

gàr must appear as gar3

▶ 単語にはアキュート アクセントとグレーブ アクセントのみが表示され、単語の末尾に追加された 2 と 3 としてそれぞれ翻訳されます。

▶ 単語には、スペース、タブ、改行、ハイフン (長いまたは短い)、括弧、疑問符などが付随する場合があります。

▶ 単語には、shin のような非 ASCII 文字が含まれます (面白い逆さまの帽子が付いた s )。

誰かが正しい構造、正規表現、および置換パターンを提案できますか?

ありがとう !

テスト用のサンプルは次のとおりです。

14 IGI <DIŠ>⌈x⌉-èr-ra 
15 IGI <DIŠ>bu-ṣí-ia 
16 IGI <DIŠ>su-ka-lum
17 IGI <DIŠ>ì-lí-tu-[...x-...x] 
18 ⌈MU⌉&lt;ON:>KI.BAL.BAR.RÚ:KI

結果は次のようになります。

14 IGI <DIŠ>⌈x⌉-er3-ra
15 IGI <DIŠ>bu-ṣi2-ia
16 IGI <DIŠ>su-ka-lum
17 IGI <DIŠ>i3-li2-tu-[...x-...x]
18 ⌈MU⌉&lt;ON:>KI.BAL.BAR.RU2:KI
4

1 に答える 1

1

これは非アクティブな質問ですが、同様の問題を検索する人々に役立つ可能性があるため、あなたが求めたことを正確に実行するコードを次に示します。

use utf8;
use Unicode::Normalize;

my $text='IGI <DIŠ>bu-ṣí-ia'; #your input data

my $x=NFD($text); #Normalization Form D (1)
$x=~s/\x{300}/3/g; #substitute grave accents with number 3 (2)
$x=~s/\x{301}/2/g; #substitute acute accents with number 2 (2)
$x=NFC($x); #Normalization Form C (1)
print $x; #prints "IGI <DIŠ>bu-ṣi2-ia"

1私は Unicode の専門家ではないので、これらの関数が正確に何をするのかを明確かつ適切に説明するには不十分です。これらの 記事またはGoogleは、より良いアイデアを提供してくれるかもしれません。

2 Unicode テーブルで値 300 と 301 を確認します。

于 2013-10-04T13:51:52.650 に答える