正则表达式 - 通过StringToWordVector过滤器删除阿拉伯文本中的重复字母

时间:2017-05-02 22:46:11

标签: java regex arabic

我想在文字中删除重复的阿拉伯字母。如何在Java中使用正则表达式执行此操作?我尝试了不同的正则表达式,但它删除了我的文字中的所有阿拉伯字母!帮助PLZ。 顺便说一下,我正在使用正则表达式和StringToWordVector过滤器一样here

这是我应用它的方式: {{1}}所以我尝试使用.replaceAll()函数提到的答案,但它不适用于我,或者实际上我不知道如何正确地将它们放入我的代码中。

1 个答案:

答案 0 :(得分:0)

我会更容易使用循环

String str = "hello"

char prevChar = ' ';
String result = "";
for(char ch : str.toCharArray()){
    if(ch != prevChar)
         result += ""+ch //concat casts to string for us
    prevChar = ch
}

会返回helo(已删除重复的l

修改

如果您想使用过滤器,正确的正则表达式应为

/(.)(?<=\1{2,})/ig

(在设置为.NET的refiddle上测试,他们没有java)

  • 第一组(.)捕获任何字符
  • 下一组(?<=\1{2,})细分如下:
    • \1捕获第一组((.)
    • 中指定的字符
    • {2,}捕获任何重复两次的群组
    • ?<=背后隐藏,基本上我们想检查下一个字词(\1)是否存在,但我们并不希望捕获它。

所以我们只剩下被捕获的{2,},这就是你想要的

如需更多帮助,请尝试使用这些Stack Overflow链接

祝你好运!