使用带有条件的正则表达式从字符串中使用分隔符替换文本

时间:2012-01-25 14:32:54

标签: c# regex

我一直在进行某种验证,我需要确保两个括号之间的数字总和为100。 我使用作为我的开始分隔符,使用 | 作为我的结束分隔符。

  

** 90!(78!(50 + 50)| +22)| +10!(50 + 50)| + 20!(50 + 50)| **

当我使用 !。+ \ | 时。这个正则表达式替换了字符串 它返回它们之间最大的子串。 如果我使用 !。+?\ | 。 它返回最小的子串。 我需要的是嵌套括号中最大的,而在其他情况下最小。 一个正则表达式,应该从上面的表达式返回我

90 + 10 + 20

1 个答案:

答案 0 :(得分:1)

如果您想使用正则表达式解决问题,请Balancing Groups are your answer

但鉴于您尝试解决的问题并不真正适合正则表达式的问题域,您可能能够使用解析器/扫描程序构建更好的解决方案。

可以轻松找到样品或扫描仪/解析器。一些快速点击: