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

如何用单行代码将字符串中多组斜杠/反斜杠替换为单个反斜杠?

单行代码实现路径分隔符统一替换

当然可以用单行代码搞定!先说说你之前写法报错的原因,再给你正确的实现~

问题根源:转义字符的双重处理

你之前尝试的path.replaceAll("[\\/]+", "\\")会报错,核心原因是Java字符串和正则表达式对反斜杠的双重转义要求:

  • 在正则表达式里,要匹配字面量\,需要写成\\;而在Java字符串中,每一个\都要转义成\\,所以正则里的\\在Java字符串里要写成\\\\。
  • 同样,replaceAll的第二个替换参数里,字面量\也需要转义:在替换模板中,\是特殊字符(用来引用捕获组,比如$1),所以要表示一个字面量\,需要写成\\;对应到Java字符串里,就是\\\\。

正确的单行代码实现

String path = "H\\\\\\ello///Wo\rld\!////";
path = path.replaceAll("[/\\\\]+", "\\\\");

代码解释

  • 正则部分[/\\\\]+:
    解析后对应的正则表达式是[/\\]+,表示匹配一个或多个连续的/或者\,完美覆盖你要合并的两种分隔符。
  • 替换部分\\\\:
    解析后会在结果中生成单个\,实现把连续的分隔符统一替换成单个反斜杠的需求。

验证效果

输入示例经过替换后,会得到你期望的结果:
String path = "H\ello\Wo\rld\!\\";

对比你之前的三步方案,这个单行代码一步完成了「统一转义→合并连续分隔符→转义回反斜杠」的全部逻辑,简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:33:53