搜索以印地语(天文)(UTF-16)编写的文件会导致以下问题。
该文件包含:
त्रास ततत जुग नींद ना हा बु
请注意,第一个字符“त्र”是 त + ् + र 的多个代码点现在在搜索“त”时,我得到 4 个匹配项,包括第一个字符的 त。我正在使用 Java。
我该如何搜索不属于多个代码点字符的“त”。
任何帮助将不胜感激。:)
搜索以印地语(天文)(UTF-16)编写的文件会导致以下问题。
该文件包含:
त्रास ततत जुग नींद ना हा बु
请注意,第一个字符“त्र”是 त + ् + र 的多个代码点现在在搜索“त”时,我得到 4 个匹配项,包括第一个字符的 त。我正在使用 Java。
我该如何搜索不属于多个代码点字符的“त”。
任何帮助将不胜感激。:)
我相信你可以使用 unicode 属性来做到这一点。
त(?!\p{M}+)
应该匹配 त 代码点,只要它后面没有 M 类别中的任何代码点,这些代码点是旨在与其他字符组合的字符。它使用否定的前瞻来做出该断言。
E:如果这不能立即奏效,请尝试
\uxxxx(?!\p{M}+)
其中 xxxx 是 त 符号代码点的编号。
看起来字形“त्र”实际上是连字或连词,而不是多码位字符。所以我猜你会得到预期的结果(除非你想匹配glyphs)。请参阅http://en.wikipedia.org/wiki/Devanagari#Conjuncts。