我想在文字中删除重复的阿拉伯字母。如何在Java中使用正则表达式执行此操作?我尝试了不同的正则表达式,但它删除了我的文字中的所有阿拉伯字母!帮助PLZ。 顺便说一下,我正在使用正则表达式和StringToWordVector过滤器一样here
这是我应用它的方式: {{1}}所以我尝试使用.replaceAll()函数提到的答案,但它不适用于我,或者实际上我不知道如何正确地将它们放入我的代码中。
答案 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链接
祝你好运!