我有一个像filename \ 34 \ filename这样的字符串 我只需要将数值分开。 我该怎么办?
我使用了以下代码:
string versionId = filename.Substring(filename.IndexOf("\\"), filename.LastIndexOf("\\"));
我也可能有目录名的文件名。如果是这种情况如何从该字符串中获取数值?
答案 0 :(得分:0)
尝试以下代码
string filename=@"filename\34\filename";
string[] lst=filename.Split('\\');
int version=-1;
foreach(var i in lst)
{
try
{
version= int.Parse(i);
}
catch{}
}
Console.WriteLine(version);
答案 1 :(得分:0)
使用正则表达式,但在输入格式不匹配时要小心:
string filename = @"filename\34\filename";
Console.WriteLine(new System.Text.RegularExpressions.Regex(@"^.*\\(\d*)\\.*$").Match(filename).Groups[1].Value);
答案 2 :(得分:0)
如果您确定fileptah具有静态格式,则代码中的sligh修改将为您提供精确的数值。
请注意,此解决方案仅适用于以下文件位置格式:
<强> ROOTDRIVE \ NumeriCvalue \ Filename.Extention 强>
测试数据:
string filePath = @"C:\34\test.txt";
string filePath = @"D:\32344\word.docx";
<强>代码强>
string versionId = filePath.Substring(filePath.IndexOf("\\")+1, filePath.LastIndexOf("\\")-3);