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

如何使用正则表达式仅删除URL路径段中短横线后的指定内容

问题原因

你原来的正则/ *\-[^.]*\. */g存在两个核心问题:

  • 没有限定匹配范围,会命中域名中包含-且后缀带.的片段,比如你案例里域名的-test.就被匹配到,替换为.后域名就变成了example.u.com
  • 匹配规则要求-后必须出现.才会触发替换,路径里的-2后面没有.,自然不会被匹配到,所以路径部分完全没修改

正确正则写法

使用带分组捕获的正则,先锁定域名范围,再处理路径里的-后缀:

url.replace(/(https?:\/\/[^\/]+\/[^-]+)-.*/, '$1')

规则说明

  • 捕获组$1会匹配完整域名 + 路径中第一个-之前的所有内容:
    • https?:\/\/ 匹配http/https协议头
    • [^\/]+ 匹配域名部分(所有非/的字符,域名里的-不会被截断)
    • \/ 匹配域名后的第一个斜杠,标记路径起始
    • [^-]+ 匹配路径中第一个-之前的内容
  • 后面的-.*匹配路径中第一个-及之后的所有内容,替换时直接丢弃,最终返回捕获组$1的内容即可

测试效果

输入:https://example.u-test.com/ex-2
输出:https://example.u-test.com/ex
完全符合需求,域名部分的-test不会被修改。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:36:01