我正在编写一个方法来从System.Type.FullName(不是
XML)中删除命名空间.
我开始使用谷歌搜索,并没有太远,所以切换到试图写一个我可以使用Regex.Replace()的正则表达式.但我远不是正规法师的艺术大师,所以我在正则先知的众神之前谦卑地展示自己.
鉴于以下输入:
name.space.class name.space.class<other.name.space.class1> name.space.class<other.name.space.class1,shortSpace.class2>
我需要删除命名空间,所以我得到:
class class<class1> class<class1,class2>
或者,如果有人知道具有此功能的现有库,那就更好了!
注意:我知道System.Type有一个Namespace属性,可以用来删除命名空间(即System.Type.FullName – System.Type.Namespace),但我的方法将类型名称作为字符串,需要使用类型运行时不知道的名称(无法解析).
解决方法
这个怎么样…
[.\w]+\.(\w+)
……并以1美元换货.请参阅regex101的实际操作.
从查看一些C#示例看起来你会这样做
string output = Regex.Replace(input,@"[.\w]+\.(\w+)","$1");