如果它在字符串中重复,我想删除“ - 〜 - 〜 - ”的句号,但只有它们在一起时才会删除。 我试图创建一个基于删除多个空格regex的正则表达式:
test.replaceAll("\\s+", " ");
不幸的是我没有成功。有人可以帮我写正确的正则表达式吗?感谢。
示例:
string test = "hello-~-~--~-~--~-~-"
输出:
hello-〜 - 〜 -
另一个例子
string test = "-~-~--~-~--~-~-hello-~-~--~-~--~-~-"
输出:
- 〜 - 〜-hello-〜 - 〜 -
答案 0 :(得分:2)
正则表达式是:
test.replaceAll("(-~-~-){2,}", "-~-~-")
replaceAll
用第二个参数替换正则表达式(第一个参数)匹配的所有匹配项。
()
将表达式-~-~-
组合在一起,{2,}
表示两次或更多次出现。
修改强>
就像@anubhava所说的那样,你可以使用-~-~-
反向引用第一个捕获组(即$1
包围的正则表达式)。
答案 1 :(得分:1)
test.replaceAll("(-~-~-)+", "-~-~-");
答案 2 :(得分:0)
这是你需要的正则表达式:
(-~-~-){2}