我有一种简单的方法可以从文本中提取#hashTag
:
private String[] buildHashTag(String str) {
ArrayList<String> allMatches = new ArrayList<String>();
Matcher m = Pattern.compile("(#\\w+)\\b").matcher(str);
while (m.find()) {
allMatches.add(m.group());
}
return allMatches.toArray(new String[0]);
}
问题在于如果我发送带有特殊字符的字符串,例如字符串“POMERANČ”。
测试: 输入:
#Orange in Czech language mean #pomeranč :-)
输出:
[#Orange]
但它失败了,输出必须是[#Orange, #pomeranč]
。你能告诉我,哪里出了错吗?帮帮我。谢谢。
Pattern.UNICODE_CHARACTER_CLASS
修饰符或使用Pattern.compile("(?U)(#\\w+)\\b")
。否则,\b
/\w
将无法正常工作。 - Wiktor Stribiżew