在搜索写成印地语(天城文)(UTF-16)的文件时,出现了以下问题。
该文件包含:
त्रास ततत जुग नींद ना हा बु
请注意,第一个字符“त्र”是“त”+“्”+“र”的多个代码点。现在,在搜索“त”时,我得到了4个匹配项,包括第一个字符的“त”。我正在使用Java。
我应该如何搜索不是多个代码点字符的“त”?
非常感谢您的帮助。 :)
在搜索写成印地语(天城文)(UTF-16)的文件时,出现了以下问题。
该文件包含:
त्रास ततत जुग नींद ना हा बु
请注意,第一个字符“त्र”是“त”+“्”+“र”的多个代码点。现在,在搜索“त”时,我得到了4个匹配项,包括第一个字符的“त”。我正在使用Java。
我应该如何搜索不是多个代码点字符的“त”?
非常感谢您的帮助。 :)
त(?!\p{M}+)
只要不跟随任何属于M类别的代码点,即意图与其他字符组合的字符,就应该匹配त代码点。它使用负向先行断言来进行断言。
E:如果这不起作用,请尝试
\uxxxx(?!\p{M}+)
这里的xxxx是त符号代码点的数字。
看起来字形“त्र”实际上是一个连字或合字,而不是多个代码点字符。所以我猜你得到了预期的结果(除非你想匹配字形)。请参见http://en.wikipedia.org/wiki/Devanagari#Conjuncts。