如何使用正则表达式获得具有特定属性的方法名称

本文关键字:属性 方法 正则表达式 何使用 | 更新日期: 2023-09-27 18:09:20

解析具有特定属性的方法名称时需要帮助。

规则:
1)应列出所有带有最小'[Test'属性的方法。
2) methodName在名称前有一个空格字符,在名称后有一个'('符号。最可能是在Test属性的下一行或第二行。

样本1:

[Test]
public Type methodName(parametes ...)
样本2:

//[Test]
public Type methodName(parametes ...)
示例3:

[Test (, some names etc)]
public Type methodName(parametes ...)
示例4:

[Test (, some names etc)]
[Other optional attributes]
public Type methodName(parametes ...)

预期结果:methodName

我尝试了几个建议,像这样的正则表达式匹配两个字符串之间的所有字符。但是,没有成功。

如何使用正则表达式获得具有特定属性的方法名称

对于所有regex的东西并不那么花哨,但是它可以工作,对于示例情况....

var lines = File.ReadAllLines(@"c:'temp'samples.txt");
var matched = false;
foreach (var line in lines)
{
    if(matched)
    {
        var match = Regex.Match(line, @"public");
        if(match.Length > 0)
        {
            matched = false;
            match = Regex.Match(line, @"[a-zA-Z_]+( )?(?='()"); 
            Console.WriteLine (match.Value);
        }
    }
    else
    {
        matched = Regex.IsMatch(line, @"'[.*Test.*']");
    }
}

或者您可以使用单元运行器运行所有文件,它将列出所有测试的名称....