gpt4 book ai didi

javascript - 用于仅匹配和替换 excel 公式字符串中的列号数字的正则表达式

转载 作者:行者123 更新时间:2023-11-30 14:03:00 25 4
gpt4 key购买 nike

我需要替换 excel 公式字符串中的 columnNumber 数字。

我已经尝试编写一个正则表达式 (/[A-Z]\d+/g) 来从公式字符串中获取带有数字的 columnNumber,这似乎无法正常工作,因为它只是检测 columnNumber (E2~D2)不是仅替换该 columnNumber-digit 的数字,而是替换整个 columnNumber。

var formula = "=IF(E2<(D2*0.004),100,IF((100-(((E2-(D2*0.004))/(D2*0.004))*100))<0,0,(100-(((E2-(D2*0.004))/(D2*0.004))*100))))";
var regex = /[A-Z]\d+/g;

for(var i=2; i<=3; i++)
console.log(formula.replace(regex,i)

我需要这个

/** 
=IF(E2<(D2*0.004),100,IF((100-(((E2-(D2*0.004))/(D2*0.004))*100))<0,0,(100-(((E2-(D2*0.004))/(D2*0.004))*100))))

=IF(E3<(D3*0.004),100,IF((100-(((E3-(D3*0.004))/(D3*0.004))*100))<0,0,(100-(((E3-(D3*0.004))/(D3*0.004))*100))))
**/

但是得到这个

/** 
=IF(2<(2*0.004),100,IF((100-(((2-(2*0.004))/(2*0.004))*100))<0,0,(100-(((2-(2*0.004))/(2*0.004))*100))))

=IF(3<(3*0.004),100,IF((100-(((3-(3*0.004))/(3*0.004))*100))<0,0,(100-(((3-(3*0.004))/(3*0.004))*100))))
**/

最佳答案

我不太确定,是否要替换 [A-Z] 之后的数字。如果是这种情况,这可能会帮助您这样做:

var formula = "=IF(E2<(D2*0.004),100,IF((100-(((E2-(D2*0.004))/(D2*0.004))*100))<0,0,(100-(((E2-(D2*0.004))/(D2*0.004))*100))))";
var regex = /([A-Z])\d+/g;

for(var i=2; i<=3; i++){
console.log(formula.replace(regex,'\$1'+i));
}

RegEx Demo

此图显示了表达式的工作原理:

enter image description here

关于javascript - 用于仅匹配和替换 excel 公式字符串中的列号数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55979509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com