0

プログラムを作ります。プログラムは utf8 文字列を取得し、それを単語に分割しました。ラテン文字の場合は簡単です。スペースに基づいて分割します。漢字もシンプルです。すべての文字は単語です。

弦が混じっていたら?

私は何をすべきか?

文字が中国語かどうか、または文字がスペースで区切られた単語であるか、区切られていない単語であるかを検出できたと思います。

これを行う標準的な方法は何ですか?

たとえば、私は分割したい

または、英数字以外のものに基づいて分割する必要があるかもしれません (非ラテン文字やアクセントの他の英数字を含む?)。その場合、どのように進めればよいですか?英数字、アクセント付きの単語、ヘブライ語のアリベス、アラブのアブジャドなどに一致する正規表現はありますか?

私は馬が好きです

I
Like
Horse

北小金駅南口第1自転車駐車場を分割したい

北
小
金
駅
南
...

中国語の各文字は単語だからです。

この問題を難しくしているのは、漢字と西洋文字では単語の分割が異なることです。西洋文字はスペースで区切られ、漢字は何も区切られません。

分割する前に、まず文字が中国語かどうかを検出できると思います。それは問題ありませんが、そうする方法もわかりません。

4

1 に答える 1

1

正規表現を使用する - メタ文字 like を使用すると、関連付けられている言語に関係なく、すべての\b単語境界文字をキャプチャする必要があります。

Regex.Split(myString, "\b", RegexOptions.None)
于 2012-09-13T18:32:39.877 に答える