我有一個混合文本阿拉伯文,英文,數字&特殊字符。 我如何才能在java中提取阿拉伯文文本?從java中混合文本中提取阿拉伯文本
實施例:
مرحبا كيفك i'm fine and you كله تمام . كم عمرك . my age is 18
需要輸出:
مرحبا كيفك كله تمام كم عمرك
我有一個混合文本阿拉伯文,英文,數字&特殊字符。 我如何才能在java中提取阿拉伯文文本?從java中混合文本中提取阿拉伯文本
實施例:
مرحبا كيفك i'm fine and you كله تمام . كم عمرك . my age is 18
需要輸出:
مرحبا كيفك كله تمام كم عمرك
編寫只接受阿拉伯字符正則表達式語句。這應該完成這項工作:^[\u0621-\u064A0-9 ]+$
它接受所有的阿拉伯Unicode字符,如果不這樣做,你需要什麼,它至少給你的東西入手
正則表達式匹配\p{InArabic}
任何阿拉伯字母。正則表達式\s
匹配任何空格字符。所以如果你只希望看到阿拉伯字母和空格,你可以使用類似
myString.replaceAll("[^\\p{InArabic}\\s]", "");
刪除除阿拉伯文字母和空白以外的所有內容。
可能最簡單的方法是查找字符串中0x600-0x6FF範圍內的字符。你應該能夠用正則表達式來做到這一點沿
myString.replaceAll([^\\p{IsArabic}]);
線替換(未經測試,這需要Java 7或更高版本),但這會從哪個不是阿拉伯語字符串中刪除任何字符。否則,您需要將\p{...}
替換爲\\x{600}-\\x{6ff}
,前提是我正確記住了我的正則表達式十六進制語法。
它應該是'IsArabic',而不是'isArabic'。更多信息,請訪問http://docs.oracle.com/javase/tutorial/essential/regex/unicode.html我已更新我的答案以反映這一點。 –
它不能被編譯。 – saka1029
使用正則表達式從字符串中刪除不需要的字符 –
可能的重複[從java中的給定文本中提取阿拉伯語短語](https://stackoverflow.com/questions/23710720/extract-arabic-phrases-from-a-given -text-in-java) –
或者 - > [從字符串中提取阿拉伯語單詞](https://stackoverflow.com/questions/31852871/extracting-arabic-wordsnot-semantic-arabic-phrases-from-a-string ) –