这是我的代码:
string _type="System.Collections.Generic.List<PhilpostDB.ViewModel.Person>";
_type = Regex.Replace(_type, @"[.\w]+\.(\w+)", "$1"); // this result=List<Person>
我想要结果:_type = PhilpostDB.ViewModel.Person
答案 0 :(得分: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);
}
编辑谢谢蒂姆,但如果我想要结果= PhilpostDB.ViewModel.Person?
string genericType = _type.Split('<').Last().TrimEnd('>');
答案 1 :(得分:1)
搜索:
[^<]+\<([^>]+)\>
并替换为:
$1
即:
_type = Regex.Replace(_type, @"[^<]+\<([^>]+)\>", "$1");