删除字符串中的重复字符集

时间:2013-11-11 15:13:01

标签: java regex string

如果它在字符串中重复,我想删除“ - 〜 - 〜 - ”的句号,但只有它们在一起时才会删除。 我试图创建一个基于删除多个空格regex的正则表达式:

test.replaceAll("\\s+", " ");

不幸的是我没有成功。有人可以帮我写正确的正则表达式吗?感谢。

示例:

string test = "hello-~-~--~-~--~-~-"

输出:

hello-〜 - 〜 -

另一个例子

string test = "-~-~--~-~--~-~-hello-~-~--~-~--~-~-"

输出:

- 〜 - 〜-hello-〜 - 〜 -

3 个答案:

答案 0 :(得分:2)

正则表达式是:

test.replaceAll("(-~-~-){2,}", "-~-~-")

replaceAll用第二个参数替换正则表达式(第一个参数)匹配的所有匹配项。

()将表达式-~-~-组合在一起,{2,}表示两次或更多次出现。

修改

就像@anubhava所说的那样,你可以使用-~-~-反向引用第一个捕获组(即$1包围的正则表达式)。

答案 1 :(得分:1)

test.replaceAll("(-~-~-)+", "-~-~-");

答案 2 :(得分:0)

这是你需要的正则表达式:

(-~-~-){2}