1

如果它在字符串中重复,我想删除序列“-~-~-”,但前提是它们在一起。我试图创建一个基于删除多个空格正则表达式的正则表达式:

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

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

例子:

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

输出:

你好-~-~-

另一个例子

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

输出:

-~-~-你好-~-~-

4

3 回答 3

2

正则表达式是:

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

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

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

编辑

就像@anubhava 所说,您还可以使用which 反向引用第一个捕获组(即,由 包围的正则表达式中的表达式),而不是使用-~-~-替换字符串。$1()

于 2013-11-11T15:22:58.257 回答
1
test.replaceAll("(-~-~-)+", "-~-~-");
于 2013-11-11T15:16:31.627 回答
0

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

(-~-~-){2}
于 2013-11-11T15:19:21.173 回答