用正则表达式替换字符串

Posted

技术标签:

【中文标题】用正则表达式替换字符串【英文标题】:string replacement with regex 【发布时间】:2021-11-29 03:07:54 【问题描述】:

我在 sql db 中有字段包含动态计算问题的公式 在我的示例中,我有以下字符串(q1)+(q2)

如何将 q1q2 ... qn 替换为此 eval($(q1).val())+eval($(q2).val())

我需要 c# 或 javascript 中的代码来做到这一点。

这是我的 c# 代码用 eval($(q1).val()) 替换 (q1),(q2),..(qn) , 但我需要动态获取 q

`string _equation = dr["calc_equation"].ToString();
 _equation = Regex.Replace(_equation, @"[(]q[0-9][)]+", "eval($(q1).val())");`

【问题讨论】:

math.js 对你有用吗? 【参考方案1】:

例如:

const f = '(q1)+(q2)';

console.log(f.replace(/\([a-z]\d\)/g,  'eval($$$&.val())'));

第一个$ 转义第二个$$& 代表每个匹配项。

如果可以有多个字母,则使用[a-z]+

【讨论】:

非常感谢,这解决了我的问题

以上是关于用正则表达式替换字符串的主要内容,如果未能解决你的问题,请参考以下文章

Android怎么用正则表达式替换字符串某些字符?

java用正则表达式判定特殊字符是不是,存在就替换的问题?

用正则表达式实现替换

js正则表达式替换捕获内容

怎样用正则表达式判断字符串中的中文数

Java 正则表达式 替换字符串中人名