2017-07-18 45 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