0

这是我的代码:

string _type="System.Collections.Generic.List<PhilpostDB.ViewModel.Person>";
_type = Regex.Replace(_type, @"[.\w]+\.(\w+)", "$1"); // this result=List<Person>

我想要结果:_type=PhilpostDB.ViewModel.Person

4

2 回答 2

1

搜索:

[^<]+\<([^>]+)\>

并替换为:

$1

IE:

_type = Regex.Replace(_type, @"[^<]+\<([^>]+)\>", "$1");
于 2013-08-29T10:18:41.130 回答
1

应该只使用字符串方法:

string _type = "System.Collections.Generic.List<PhilpostDB.ViewModel.Person>";
string[] tokens = _type.Split('<');
string result = tokens[0].Split('.').Last();
if (tokens.Length > 1)
{
    string token2 = tokens.Last().Split('.').Last();
    result = string.Format("{0}<{1}", result, token2);
}

Demo

编辑感谢蒂姆,但如果我想要结果 = PhilpostDB.ViewModel.Person?

string genericType = _type.Split('<').Last().TrimEnd('>');
于 2013-08-29T10:01:04.973 回答