0

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

我有这个正则表达式

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

太匹配 C# 中的一行函数声明。但问题是它有效,但也符合这条线

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

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

4

1 回答 1

2

您在新条件之前拥有的.*所有内容都匹配包括花括号在内的所有内容。

因此,您可能想要这样的东西:

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

话虽如此,根据您最终想要做什么,真正的解析器而不是正则表达式可能更合适。

于 2013-05-27T12:33:24.873 回答