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