将函数的类型名称解析为日志的可读文本 - 通配符

时间:2014-11-17 06:49:24

标签: c# regex wildcard

如何获取函数的完整类型名称,例如:

  MyApp.Components.Services.<SomeMethodName>d__e.MoveNext

并将其解析为类似

的内容
  Components.Services.SomeMethodName()

我可以通过简单的Replace()调用获得,但是让我感到困惑的是&#34; d__e&#34;这可能会有所不同实际上我需要通配符几个字符。像">*__*.MoveNext"

这样的东西

我该怎么办?

1 个答案:

答案 0 :(得分:1)

*

中使用否定字符类而不是">*__*.MoveNext"

正则表达式:

MyApp.(Components.Services.)<([^<>]*)>[^_]*__[^.]*.MoveNext

替换字符串:

$1$2()

DEMO

<强>代码:

string str = "foo bar MyApp.Components.Services.<SomeMethodName>d__e.MoveNext";
string result = Regex.Replace(str, @"MyApp.(Components.Services.)<([^<>]*)>[^_]*__[^.]*.MoveNext", "$1$2()");
Console.WriteLine(result);
Console.ReadLine();

IDEONE