字符串的SubString

时间:2014-12-09 06:42:37

标签: c#

我有一个像filename \ 34 \ filename这样的字符串 我只需要将数值分开。 我该怎么办?

我使用了以下代码:

string versionId = filename.Substring(filename.IndexOf("\\"), filename.LastIndexOf("\\"));

我也可能有目录名的文件名。如果是这种情况如何从该字符串中获取数值?

3 个答案:

答案 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);