4

搜索以印地语(天文)(UTF-16)编写的文件会导致以下问题。

该文件包含:

त्रास ततत जुग नींद ना हा बु

请注意,第一个字符“त्र”是 त + ् + र 的多个代码点现在在搜索“त”时,我得到 4 个匹配项,包括第一个字符的 त。我正在使用 Java。

我该如何搜索不属于多个代码点字符的“त”。

任何帮助将不胜感激。:)

4

2 回答 2

1

我相信你可以使用 unicode 属性来做到这一点。

त(?!\p{M}+)

应该匹配 त 代码点,只要它后面没有 M 类别中的任何代码点,这些代码点是旨在与其他字符组合的字符。它使用否定的前瞻来做出该断言。

E:如果这不能立即奏效,请尝试

\uxxxx(?!\p{M}+)

其中 xxxx 是 त 符号代码点的编号。

于 2009-08-25T13:28:20.837 回答
0

看起来字形“त्र”实际上是连字或连词,而不是多码位字符。所以我猜你会得到预期的结果(除非你想匹配glyphs)。请参阅http://en.wikipedia.org/wiki/Devanagari#Conjuncts

于 2009-08-25T13:29:31.007 回答