如何使用正则表达式提取个别条件?

时间:2017-08-25 18:01:25

标签: c# regex

我正在解析有条件的字符串。最简单的是“x <3”。对于更复杂的,它可以是“((x <3)||(y> 4))&amp;&amp;(z == 5)”。我可以在C#中使用以下内容完成所有这些:

string[] condTokens = new Regex(@"([\(\)])").Split(conditionalExpression.Trim());

这给了我用标记分解的表达 - 效果很好。

然而......我遇到了问题:

"((x < 3) || (y > 4)) && (z == GetNum(x,y))"

因为“GetNum()”需要是一个令牌。

关于如何制作一个可以处理这个问题的正则表达式,有什么想法?

更新:这标记为过于宽泛,但这是一个非常具体的问题。另外@ linden2015提供了一个非常聪明的解决方案。

1 个答案:

答案 0 :(得分:0)

也许你可以分两步完成。

  • 第1步:删除不需要的内容。
  • 第2步:使用原始模式。

模式\w+\(.+?\)匹配getnum(a, b)Demo