2017-08-02 94 views
3

我轮询的tweet想从它过滤井号标签我拍照后的文本从它 我把它变成字符串现在 我有这个字符串:“892698363371638784:RT @hikids_ksa:一个危险的游戏苦威比她的大脑和思维和技能 都可以在#Mottagr_haa_kidz_alaketrona。“如何删除阿拉伯语主题标签?使用Twitter4j 和我叽叽喳喳

我想删除Mottagr_haa_kidz_alaketrona,因为它使用Java

之后有主题标记我的代码没有在这个输入的工作问题: ” @ kaskasomar赫达没有大脑金属从别人#傻意见“金属吕Bejn黎巴嫩人民和Bathmu对付恐怖主义,而且其因RAIO Bejtlv

部分傻出于某种原因 没有被去除,这是我的方法

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

在= in.replaceAll( “[AZ]#“”, “”); - >不应该将*#*是方括号之前? – Markus

+0

不应该 “[AZ]#+” 是 “[AZ +#”? – 5tingr4y

+0

@ tingr4y你可以重写你的表达,请 – AmrAyman

回答

3

如果你只是想删除任何语言的所有哈希标签,你可以写

in = in.replaceAll("#\\p{IsAlphabetic}+", ""); 

如果你特别要删除阿拉伯语哈希标签,你可以写

in = in.replaceAll("#\\p{IsArabic}+", ""); 

,所以你不必担心建立一个正则表达式与左到右,右到左部分。这提高了代码的可读性。

+0

虽然你的行帮我减少井号标签的很多,我得到这个数字“RT @hikids_ksa:一场危险的游戏苦威比她的大脑和思维和技能 在#Mottagr_haa_kidz_alaketrona可利用的。” – AmrAyman

+1

它看起来像要匹配下划线和字母。你可以尝试' “#[\\ p {IsAlphabetic} _] +”'。 –

+0

这是非常有益的,我没有现在的主题标签还是我想知道如何删除具有字符我可能没有考虑像井号标签“:”?“” “$”,或者如果你想匹配任何非空格字符不字母处理这个 – AmrAyman

2

的问题是,在第二行中,+被施加到主题标签,而不是阿拉伯字符。修正版本:

in = in.replaceAll("[أ-ي]+#","");