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

如何使用正则表达式移除两个特殊字符之间的字符串

原有实现问题排查

你之前使用的.+/属于贪婪匹配规则,会匹配从字符串开头到最后一个/之间的所有内容,替换后只会保留/之后的部分,和你需要删除特定区间内容的需求不符。


正确实现方案

你需要匹配-和最近的/之间的所有非/字符,将这段内容替换为-即可,对应正则为-[^/]+/:

String FILENAME = "2.2.1-Application-2.0.2-bug/TEST-1.0.0.zip";
// 替换规则:匹配-到/之间的所有非/字符,替换为单个-
String result = FILENAME.replaceAll("-[^/]+/", "-");
System.out.println(result);

输出结果

2.2.1-Application-2.0.2-TEST-1.0.0.zip

如果输入为你给出的第一个示例Application-2.0.2-bug/TEST-1.0.0.zip,输出也完全符合你要求的Application-2.0.2-TEST-1.0.0.zip。


正则规则说明

  • -:匹配字面量横杠
  • [^/]+:匹配任意数量的非/字符,确保只匹配到最近的一个/为止,不会跨区间贪婪匹配
  • /:匹配字面量斜杠
  • 替换为-:相当于删掉了横杠到斜杠之间的分支前缀内容,保留前后的连接关系

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:24:01