我尝试在文本中找到单词,以大写字母开头。但我不仅需要解析拉丁字母。 部分代码:
String pattern = "[^[\\p{Upper}\\p{Lu}]\\w]";
Pattern r = Pattern.compile(pattern);
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
Boolean m = word.toString().matches(pattern);
if(m)
{
uid.set(word);
context.write(uid, one);
}
}
答案 0 :(得分:1)
可以在
中找到以Java中的大写字母开头的单词String pattern ="\\b\\p{Lu}\\p{L}*\\b";
\b
- 字边界\p{Lu}
- 大写Unicode字母\p{L}*
- 任何Unicode字母,0或更多次重复\b
- 字边界示例代码:
String str = "\u042F \u0425\u043E\u0436\u0443 \u043F\u043E \u0432\u043E\u0434\u0435.";
String rx = "\\b\\p{Lu}\\p{L}*\\b";
Pattern ptrn = Pattern.compile(rx);
Matcher m = ptrn.matcher(str);
while (m.find()) {
System.out.println(m.group(0));
}