【发布时间】:2009-05-07 21:38:43
【问题描述】:
我有一个可以执行“IntPow(3,2)”之类的函数的数学解析器。如果用户粘贴“1,000,000”,然后添加一个加号,使完整的等式“1,000,000+IntPow(3,2)”解析器失败,因为它不适用于包含逗号的数字。
我需要从“1,000,000”中删除逗号,而不是从“IntPow(3,2)”中删除逗号,因为 IntPow 有两个由逗号分隔的参数。最终等式将是“1000000+IntPow(3,2)”。方程式存储在一个字符串中。如何仅删除括号外的逗号?我假设并说包含逗号的数字不会放在 IntPow 参数列表中。
当我说“删除逗号”时,我的意思是删除“CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator”,这可能是逗号或句点,具体取决于本地。这部分很简单,因为我假设将使用 RegEx,我可以在 RegEx 逗号位置连接该值。
我有这个 RegEx: (.*?) 用于在其中查找括号和值,但我不确定如何仅删除 RegEx 匹配项之外的逗号。
【问题讨论】:
-
您是否假设所有括号都是余额,即每个 '(' 都有一个匹配的 ')'?