从java中的混合文本中提取阿拉伯语文本

时间:2017-07-18 20:33:06

标签: java

我有一个混合文本阿拉伯语,英语,数字&特殊的特征。 我怎样才能在java中提取阿拉伯语文本?

示例:

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

需要输出:

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

3 个答案:

答案 0 :(得分:3)

正则表达式\p{InArabic}匹配任何阿拉伯字母。正则表达式\s匹配任何空格字符。因此,如果您只想查看阿拉伯字母和空格,可以使用类似

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

删除除阿拉伯字母和空格以外的所有内容。

答案 1 :(得分:0)

编写一个只接受阿拉伯字符的正则表达式语句。这个应该完成工作:^[\u0621-\u064A0-9 ]+$

它接受所有阿拉伯语unicode字符,如果它不能完全满足您的需要,它至少可以为您提供一些开始

答案 2 :(得分:0)

可能最简单的方法是在字符串中查找0x600-0x6FF范围内的字符。您应该可以使用

中的regexp替换来执行此操作
myString.replaceAll([^\\p{IsArabic}]);

(未经测试,这需要Java 7或更高版本),但这会删除字符串中不是阿拉伯语的任何字符。否则,您需要将\p{...}替换为\\x{600}-\\x{6ff},假设我正确记住了正则表达式十六进制语法。