在我的应用程序中,我试图从一个' content-header'中检索的字符串中获取文件的名称。来自服务器的标签。文件名看起来像\"uploads/2014/03/filename.zip\"
(引用包含在值中)。
我尝试使用Path.GetFileName(string);
来获取文件名,但它会抛出一个异常,说明路径中存在非法字符。
我应该使用什么才能让filename.zip
返回?是一个正则表达式是修剪这个字符串的最好方法还是有更好的一个?
\"uploads/2014/03/
部分的长度始终相同。 filename.zip
可以是任何文件名和扩展名,我只是以此为例。但数字可能会有所不同。对我来说这听起来像是一个正则表达式的工作,但我不知道如何使用正则表达式。
答案 0 :(得分:1)
您可以尝试这样的事情:
var inputString = @"\""uploads/2014/03/filename.zip\""";
var result = inputString.Trim('\\', '"').Split('/')[3];
如果格式总是像\"uploads/someNumber/someOtherNumber/filename\"
那样,这应该有用。为了使其更安全,您可能希望在Split
之后使用Enumerable.Last
方法:
var result = inputString.Trim('\\', '"').Split('/').Last();