我正在尝试获取一种印度语言(孟加拉语)中特定单词之前的所有单词。该技术对于英语非常有效,但对于孟加拉语却失败了:
Pattern p = Pattern.compile("([\\w\\s]+) ছবি", Pattern.UNICODE_CASE);
Matcher m = p.matcher("ক্যামেরাকে ছবি তোলা এবং ভিডিও রেকর্ড এর অনুমতি দেবেন");
while (m.find()) {
System.err.println(m.group(1));
}
所以理想情况下,我试图将单词 ক্যামেরাকে
作为输出,它位于文本 ছবি তোলা এবং ভিডিও রেক之前র্ড...
。顺便说一句,这是本例中的第一个单词,但情况可能并非如此。
我该怎么做?嗯,我正在尝试在 Android 上执行此操作。
编辑
在这里尝试 Java 解决方案:
谢谢!
最佳答案
将此用于孟加拉语字母:
Pattern.compile("([\\p{IsBeng}\\s]+) ছবি", Pattern.UNICODE_CASE);
\p{xxx}
可用于很多字符类,例如类别,也可用于脚本,您需要知道名称和前缀 Is
.
也可以使用
Pattern.compile("([\\w\\s]+) ছবি", Pattern.UNICODE_CHARACTER_CLASS);
但这将匹配任何字母表中的字母,所以我不确定您真正需要什么。
关于java - 在正则表达式解析中处理 Unicode 单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46916577/