正则表达式函数匹配

时间:2013-05-27 12:31:39

标签: c# .net regex

我正在玩正则表达式来学习一点点,我想出了一个我不明白的问题。

我有这个正则表达式

\s+(public|private|protected|internal|sealed).*[^{.}]\(.*

也匹配c#中的一行函数声明。但事情是它有效,但也匹配这一行

private bool FooBar { get { return _fooBar != null && !_fooBar.BarFoo.Any(); } }

我试图通过在正则表达式[^{.}]中添加此条件来解决它,但它保持匹配。 那么有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

新条件之前的.*与所有内容相匹配,包括大括号。

因此,你可能需要这样的东西:

\s+(public|private|protected|internal|sealed)\s+[^{.}]+\(

话虽这么说,取决于你最终想要做什么,真正的解析器而不是正则表达式可能更合适。