java - 使用正则表达式搜索 unicode 文本

标签 java unicode character-properties ligature

搜索用印地语(梵文)(UTF-16) 编写的文件时出现以下问题。

文件包含:

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

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

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

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

最佳答案

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

त(?!\p{M}+)

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

E: 如果这不能马上奏效,试试

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

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

关于java - 使用正则表达式搜索 unicode 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328182/

相关文章:

Python:在单词边界上拆分 unicode 字符串

java - : I have a requirement of matching the value request parameter with unicode charcters but it should not allow space 的正则表达式

java - 如何从 Android 应用程序访问 Oracle 数据库。

java - 我应该包含 JPA 的 main 方法吗?

java - 转义双引号无法正常工作

python - DjangoUnicode解码错误: [Bad Unicode data]

java - 字符算术 --- 基数 8 与基数 10

java - Karaf Camel :route-list shows only Blueprint routes, 不是 Java 路线

java - Scala 隐式转换器对于类型不可见

string - 将 Unicode 字符串转换为 ASCII