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

如何替换字符串中第二个与第三个下划线之间的内容?

替换字符串中第二个与第三个下划线之间内容的最优方法

直接使用正则表达式是最优方案,无需拆分数组,一次匹配即可完成替换。针对你的目标字符串,我们可以通过精准定位第二个下划线之后、第三个下划线之前的内容来实现替换。

核心思路

利用正则的断言或捕获组,锁定需要替换的片段范围,直接替换为指定内容,全程无需拆分字符串。

代码示例(JavaScript)

const original = "X Services alba_tango_2021H1_[ten]";
const result = original.replace(/(?<=^[^_]*_[^_]*_).*?(?=_)/, "test");
console.log(result); // 输出:X Services alba_tango_test_[ten]

正则说明

  • (?<=^[^_]*_[^_]*_):正向后顾断言,确保匹配位置前是「字符串开头→任意非下划线字符→第一个下划线→任意非下划线字符→第二个下划线」的完整片段(即X Services alba_tango_)
  • .*?:非贪婪匹配任意字符,精准停在第三个下划线之前
  • (?=_):正向前瞻断言,确保匹配位置后是第三个下划线

兼容旧环境的捕获组写法

如果你的开发环境不支持正向断言,可以用捕获组实现同样效果:

const original = "X Services alba_tango_2021H1_[ten]";
const result = original.replace(/^([^_]*_[^_]*_)_[^_]*_(.*)$/, "$1test_$2");
  • ([^_]*_[^_]*_):捕获前两个下划线及之前的所有内容
  • [^_]*:匹配要替换的目标片段(2021H1)
  • (.*):捕获第三个下划线及之后的所有内容
  • 替换时用$1test_$2拼接,将中间片段替换为test

Python 示例

import re

original = "X Services alba_tango_2021H1_[ten]"
result = re.sub(r'(?<=^[^_]*_[^_]*_).*?(?=_)', 'test', original)
print(result) # 输出:X Services alba_tango_test_[ten]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:54:30