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

如何用正则表达式给字符串中#后的数字添加固定偏移量?

解决方案

你需要使用String.replaceAll()的回调函数参数来实现这个需求,回调函数可以获取到正则捕获的旧数字值,完成计算后返回新的替换字符串。

完整代码实现

const offset = 100;
const matchingExpression = /\#(\d+)/ig;
let text = `#41 = AXIS2_PLACEMENT_3D ( 'NONE', #3200, #1543, #6232 ) ;
#42 = EDGE_CURVE ( 'NONE', #180, #933, #1234, .T. ) ;`;

// 使用回调函数处理替换
text = text.replaceAll(matchingExpression, (match, numStr) => {
  // 将捕获到的数字字符串转为整数,加上偏移量后拼接#
  return `#${Number(numStr) + offset}`;
});

console.log(text);

关键说明

  • 正则/\#(\d+)/ig中的(\d+)是捕获组,专门提取#后面的数字部分
  • replaceAll的第二个参数传入回调函数时,第二个参数numStr就是捕获组拿到的旧数字字符串
  • 把numStr转为Number类型后加上offset,再拼接#返回,就是替换后的新内容

运行后输出的结果即为目标效果:

#141 = AXIS2_PLACEMENT_3D ( 'NONE', #3300, #1643, #6332 ) ;
#142 = EDGE_CURVE ( 'NONE', #280, #1033, #1334, .T. ) ;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:31:42