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

正则表达式新手求助:如何去除斜杠(/)前后的空白字符?

解决斜杠前后空白的正则替换方案

嘿,我来帮你搞定这个正则问题!看你的需求是要把斜杠/前后的空白都去掉,但保留斜杠中间内容里的空格(比如Some folder里的空格不能动),对吧?

先说说你之前尝试的@"\s?()\s?"为啥不行——这个表达式里的空捕获组()完全没关联到斜杠,相当于只是在匹配零散的空白,根本没定位到斜杠前后的目标空白,所以肯定达不到效果。

给你两个靠谱的方案,都能实现你要的结果:

方案一:简洁匹配替换

用正则@"\s*/\s*"匹配“任意空白+斜杠+任意空白”的组合,然后替换成单个/。这样不管斜杠前后有多少个空白(包括0个),都会被替换成干净的/。

举个C#的代码例子(看你用了@前缀,应该是C#环境):

string input = "Path01 /Some folder/ folder (2)";
string result = Regex.Replace(input, @"\s*/\s*", "/");
// 输出结果:"Path01/Some folder/folder (2)"

正则解释:

  • \s*:匹配0个或多个空白字符(空格、制表符都算)
  • /:匹配实际的斜杠字符
  • 整个表达式把斜杠前后的所有空白和斜杠本身匹配,替换成单个/,就完美去掉了前后的空白。

方案二:精准匹配要删除的空白

如果你想更精准地只删除斜杠前后的空白(不碰斜杠本身),可以用这个正则@"\s+(?=/)|(?<=/)\s+",然后替换成空字符串:

代码示例:

string input = "Path01 /Some folder/ folder (2)";
string result = Regex.Replace(input, @"\s+(?=/)|(?<=/)\s+", "");
// 输出结果同样是:"Path01/Some folder/folder (2)"

正则解释:

  • \s+(?=/):匹配一个或多个空白,后面紧跟着斜杠(正向预查,不捕获斜杠本身)
  • (?<=/)\s+:匹配一个或多个空白,前面是斜杠(反向预查,不捕获斜杠本身)
  • 把这两类空白替换成空,就直接去掉了斜杠前后的冗余空白,斜杠保留原样。

这两个方案都能满足你的需求,选哪个看你的习惯就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:31:34