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

如何移除按/分割的字符串的最后两个分段?

最优字符串处理方案

方法一:数组分割拼接法

这种方法逻辑直观,适合路径分段数固定的场景:

  1. 先提取所有<strong>标签内的路径内容,用正则匹配/<strong>(.*?)<\/strong>/g就能批量获取。
  2. 把每个路径按/分割成数组,比如abc/def/ghi/test/yvw/syz会变成["abc","def","ghi","test","yvw","syz"]。
  3. 保留数组的前4个元素(或者直接去掉最后2个,用slice(0, -2)),再用/拼接成新路径。
  4. 把原字符串里的旧路径替换成新路径即可。

代码示例(以JavaScript为例):

const originalStr = '<p><strong>abc/def/ghi/test/yvw/syz</strong></p><p><strong>abc/fed/igh/test_123/wuvacv/zyxh</strong></p>';
const result = originalStr.replace(/<strong>(.*?)<\/strong>/g, (match, path) => {
  const parts = path.split('/');
  // 两种写法都可以:取前4段 或 去掉最后2段
  const newPath = parts.slice(0, 4).join('/');
  // const newPath = parts.slice(0, -2).join('/');
  return `<strong>${newPath}</strong>`;
});
console.log(result);

方法二:正则直接替换法

如果不确定路径总段数,但确定要去掉最后两段,用正则更灵活:
核心是匹配倒数第二个/之前的所有内容,不需要关心最后两段的具体内容。用正向预查(?=\/.*\/)来定位位置,就能精准截取需要的部分。

代码示例(以JavaScript为例):

const originalStr = '<p><strong>abc/def/ghi/test/yvw/syz</strong></p><p><strong>abc/fed/igh/test_123/wuvacv/zyxh</strong></p>';
const result = originalStr.replace(/<strong>(.*?)<\/strong>/g, (match, path) => {
  const newPath = path.match(/^(.*)(?=\/.*\/)/)[0];
  return `<strong>${newPath}</strong>`;
});
console.log(result);

两种方法对比

  • 数组分割法:逻辑清晰,新手也能快速理解,适合提前知道需要保留的段数的场景。
  • 正则替换法:适应性更强,不管路径总段数是多少,只要要去掉最后两段都能用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:55:13