首页 > 解决方案 > 用正则表达式替换字符串

问题描述

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

我该如何替换q1and q2 ... qn, 到这个 eval($(q1).val())+eval($(q2).val())

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

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

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

标签: javascriptc#regexstring

解决方案


例如:

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

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

Thr 首先$转义了第二个$,而$&代表每个匹配项。

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


推荐阅读