You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java正则表达式替换斜杠:单斜杠删去,多斜杠仅删首个

Java正则实现斜杠替换方案

我来帮你搞定这个斜杠替换的需求!根据你描述的规则——单个斜杠删除,连续斜杠只保留从第二个开始的部分,我们可以用反向否定预查的正则表达式来实现,一次替换就能搞定两种情况。

实现思路

核心思路是:匹配所有前面没有紧跟斜杠的单个斜杠,然后将其替换为空字符串。这样:

  • 孤立的单个斜杠:前面没有斜杠,会被匹配并删除
  • 连续斜杠的第一个斜杠:前面没有斜杠,会被匹配并删除,剩下的斜杠因为前面都是斜杠,不会被匹配,自然保留下来

Java代码示例

public class SlashReplacer {
    public static void main(String[] args) {
        // 测试Case 1:单个斜杠替换为空
        String input1 = "This is /text/";
        String output1 = input1.replaceAll("(?<!/)\\/", "");
        System.out.println("Case 1 输出: " + output1); // 结果:This is text

        // 测试Case 2:连续斜杠只保留一个
        String input2 = "This// is //text";
        String output2 = input2.replaceAll("(?<!/)\\/", "");
        System.out.println("Case 2 输出: " + output2); // 结果:This/ is /text
    }
}

正则表达式解释

  • (?<!/):这是反向否定预查,用来检查当前位置的前面是否没有斜杠。如果前面没有斜杠,才会继续匹配后面的字符。
  • \\/:在Java字符串中表示正则里的斜杠/(其实斜杠不是正则元字符,直接写/也是有效的,这里用转义写法是为了避免代码阅读歧义)。

额外场景验证

比如输入"/a//b/c/",替换后会得到"a/bc",完全符合规则:

  • 开头的单个斜杠被删除
  • 连续的//变成/
  • 中间的单个/被删除
  • 结尾的单个斜杠被删除

内容的提问来源于stack exchange,提问作者ashok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 10:52:51