正規表現だけで可能だと思いますか?
これがGo Playgroundでの私の試みです
これはいくつかの汚いコードで成功しています
http://play.golang.org/p/YysZCB3vlu
拡張ハングル文字を完全な文字に変換したい。たとえば、 "ㅈㅗㅎㅇㅡㄴㄱㅏㅂㅂㅅㅆㅏㅇㅛㅇㅏㅊㅊㅣㅣㅁㅏㅏㅕㅇㅇㅎ
韓国語の文字が正しく表示されないブラウザの場合:
좋 은 값 이 싸 요 あ 침 안 녕 하 세 요 웬</p>
簡単な部分は、韓国語の文字は 1 つの子音 + 1 つまたは 2 つの母音でしか始まらないことです。これは ( ) でキャッチできます.([ㅏ-ㅣ])+
。
挑戦的な部分は、母音に続くゼロまたは1つまたは最大2つのオプションの子音です。それが難しいもう1つの理由は、最大2つのオプションの子音の後に、前の文字に属さない別の子音があり、この子音が新しい1つの文字の別の開始を意味することです。
以下のように:
ㄱㅏㅂㅅㅇㅣ
= ㄱㅏㅂㅅ + ㅇㅣ
= 값 + 이
= 값이
if 条件と基本的な正規表現を使用して、すべてのパターンをキャッチすることができます。しかし、これの短いバージョンがあればいいのですが。
私の最終的な目標は、 "ㅈㅗㅎㅇㅡㄴㄴㄱㅏㅏㅅㅇㅆㅏㅇㅛㅇㅇㅏㅊㅣㅣㅏㄴㅕㅎㅏㅅㅅㅅㅔㅔㄴㅔㄴㅔㄴㅔㄴㅔㄴ"
韓国語の文字が正しく表示されないブラウザの場合:
좋 은 값 이 싸 요 あ 침 안 녕 하 세 요 웬</p>