如何匹配没有特定类别的方法

How to match methods without a specific category

我需要从几个 类 中删除一些没有特定类别的测试

如何匹配比?

在此示例中,我只想删除方法 'Bar' 和 'BarTwo'

namespace MyNameSpace
{
    /// <summary>
    /// Some Stuff
    /// </summary>
    public class MyClass
    {
        [CategoryA]
        public void Foo()
        {
        }

        public void Bar()
        {
        }

        [CategoryA]
        public void Baz()
        {
        }

        public void BarTwo()
        {
        }
    }
}

您可以使用以下方式进行匹配:

(?<!]\s)public\s+void[^[]+(?=\[|\s*}\s*}$)

并替换为 ''(空字符串)

DEMO

注意 1 : 我假设你所有的方法都以 public 开头,如果不是,你可以使用以下内容:

(?<!]\s*)(public|private|protected)\s+void[^[]+(?=\[|\s*}\s*}$)

注2:我还假设你的方法中不会有任何[]