如何区分哪些 Unicode 字符是字母(单词),哪些是标点符号?

Tho*_*ann 3 unicode text

我想检测文本中的单词,即我需要知道给定文本中的哪些字符是字母,即它们可以是(口语)单词的一部分,另一方面,哪些字符是标点符号等。

\n\n

例如,在上面的句子中,“我”、“想要”和“i”和“e”是这方面的单词,而空格“。” 和逗号则不是。

\n\n

这样做的困难在于我希望能够读取任何类型的基于 Unicode 的脚本。例如,德语单词“sch\xc3\xb6n”是一个单词。但希腊语、阿拉伯语或日语又如何呢?

\n\n

因此,我需要一个表格或列表,指定可以形成单词的所有字符范围。或者,我还想知道哪些字符是可以形成数字的数字(假设其他脚本具有与阿拉伯数字类似的编号方案)。

\n\n

我需要这个用于 Mac OS X、Windows 和 Linux。我将编写一个 C 应用程序,因此它需要是一个操作系统库或一个完整的代码/数据解决方案,我可以将其转换为 C。

\n\n

我知道Mac OS(Cocoa)提供了用于此目的的功能,但我不确定Win和Linux是否有类似的解决方案(可能是基于gtk?)。

\n\n

或者,如果我有完整的表格,我可以编写自己的代码。

\n\n

我找到了 unicode 图表(http://unicode.org/charts/index.html#scripts),但这并不是我可以在编程中使用的一种方便的形式。

\n\n

那么,有人可以告诉我 Windows 和 Linux 是否有用于此目的的函数,或者我在哪里可以找到 unicode 中单词字符的完整表/列表?

\n

Ign*_*ams 5

您可以尝试使用Unicode 字符类别来找出单词分隔符,但请注意,某些语言(例如日语)甚至没有单词分隔符。