如果某些字符是中文,我们如何将utf-8字符分成单词?

时间:2012-09-13 18:29:54

标签: vb.net utf-8

我制作了一个节目。该程序获得了一个utf8字符串并将其拆分为单词。对于拉丁字符,它很简单。根据空间分割。对于汉字来说,它也很简单。每个角色都是一个词。

如果字符串混合怎么办?

我该怎么办?

我想我可以检测出这个角色是不是中国人,或者这个角色是空格分隔的单词还是没有单独的单词。

这样做的标准方法是什么?

例如我想拆分

或许我应该根据不是字母数字的东西进行拆分(包括非拉丁文字和重音符号上的其他字母数字?)。如果是这样我该怎么办?这场比赛的正则表达式是不是包括字母数字,重音词,希伯来语alibeth,阿拉伯语abjad和东西?

我喜欢马进入

I
Like
Horse

我想分手 北小金駅南口第1自転车驻车场 成

北
小
金
駅
南
...

因为中文中的每个字都是单词。

使这个问题变得棘手的原因是汉字和西方字符之间的单词分割是不同的。西方字符用空格分隔,汉字分开。

我想我们可以先分辨出这个角色是不是中国人。那没关系,但是,我不知道怎么做。

1 个答案:

答案 0 :(得分:1)

使用正则表达式 - 使用\b之类的元字符应该捕获所有字边界字符,无论与之相关的语言是什么。

Regex.Split(myString, "\b", RegexOptions.None)