我正在玩正则表达式来学习一点点,我想出了一个我不明白的问题。
我有这个正则表达式
\s+(public|private|protected|internal|sealed).*[^{.}]\(.*
也匹配c#中的一行函数声明。但事情是它有效,但也匹配这一行
private bool FooBar { get { return _fooBar != null && !_fooBar.BarFoo.Any(); } }
我试图通过在正则表达式[^{.}]
中添加此条件来解决它,但它保持匹配。
那么有人可以帮助我吗?
答案 0 :(得分:2)
新条件之前的.*
与所有内容相匹配,包括大括号。
因此,你可能需要这样的东西:
\s+(public|private|protected|internal|sealed)\s+[^{.}]+\(
话虽这么说,取决于你最终想要做什么,真正的解析器而不是正则表达式可能更合适。