2017-07-18 79 views
0

我有一個混合文本阿拉伯文,英文,數字&特殊字符。 我如何才能在java中提取阿拉伯文文本?從java中混合文本中提取阿拉伯文本

實施例:

مرحبا كيفك i'm fine and you كله تمام . كم عمرك . my age is 18 

需要輸出:

مرحبا كيفك كله تمام كم عمرك 
+0

使用正則表達式從字符串中刪除不需要的字符 –

+1

可能的重複[從java中的給定文本中提取阿拉伯語短語](https://stackoverflow.com/questions/23710720/extract-arabic-phrases-from-a-given -text-in-java) –

+0

或者 - > [從字符串中提取阿拉伯語單詞](https://stackoverflow.com/questions/31852871/extracting-arabic-wordsnot-semantic-arabic-phrases-from-a-string ) –

回答

0

編寫只接受阿拉伯字符正則表達式語句。這應該完成這項工作:^[\u0621-\u064A0-9 ]+$

它接受所有的阿拉伯Unicode字符,如果不這樣做,你需要什麼,它至少給你的東西入手

2

正則表達式匹配\p{InArabic}任何阿拉伯字母。正則表達式\s匹配任何空格字符。所以如果你只希望看到阿拉伯字母和空格,你可以使用類似

myString.replaceAll("[^\\p{InArabic}\\s]", ""); 

刪除除阿拉伯文字母和空白以外的所有內容。

0

可能最簡單的方法是查找字符串中0x600-0x6FF範圍內的字符。你應該能夠用正則表達式來做到這一點沿

myString.replaceAll([^\\p{IsArabic}]); 

線替換(未經測試,這需要Java 7或更高版本),但這會從哪個不是阿拉伯語字符串中刪除任何字符。否則,您需要將\p{...}替換爲\\x{600}-\\x{6ff},前提是我正確記住了我的正則表達式十六進制語法。

+0

它應該是'IsArabic',而不是'isArabic'。更多信息,請訪問http://docs.oracle.com/javase/tutorial/essential/regex/unicode.html我已更新我的答案以反映這一點。 –

+0

它不能被編譯。 – saka1029