我使用Twitter4j从Twitter查询推文 我从它中取出文本后,我试图从中过滤主题标签 我现在把它变成字符串 我有这个字符串:“892698363371638784:RT @hikids_ksa:اللعبةخطيرةمراويبيلهامخوتفكيرومهارة متوفرةفي#متجر_هاي_كيدز_الالكتروني..“
我想删除متجر_هاي_كيدز_الالكتروني,因为它在使用java后有Hashtag
我的代码在此输入上无效的问题: “@kaskasomarهيدابلامخمتلمتلغيروبيخونالشعباللبنانيوبيتهموبالارهاببسلانرأيوبيختلفعنرأيالاخرين#سخيف”
部分سخيف由于某种原因未被删除 这是我的方法
static String removeHashtags(String in)
{
in = in.replaceAll("#[A-Za-z]+","");//remove English hashtags
in = in.replaceAll("[أ-ي]#+","");//remove Arabic hashtags that have # before it
return in = in.replaceAll("#[أ-ي]+","");//remove Arabic hashtags that have # after it
}
答案 0 :(得分:4)
如果您只是想删除任何语言的所有哈希标记,可以编写
in = in.replaceAll("#\\p{IsAlphabetic}+", "");
如果您特别想删除阿拉伯语哈希标记,可以编写
in = in.replaceAll("#\\p{IsArabic}+", "");
因此您不必担心使用从左到右和从右到左的部分构建正则表达式。这提高了代码的可读性。
答案 1 :(得分:2)
问题在于,在第二行中,+
应用于主题标签,而不是阿拉伯字符。修正版:
in = in.replaceAll("[أ-ي]+#","");