C# 字符串的子字符串
我有一个类似filename\34\filename的字符串 我只需要把数值分开。 我能做什么 我使用了以下代码:C# 字符串的子字符串,c#,C#,我有一个类似filename\34\filename的字符串 我只需要把数值分开。 我能做什么 我使用了以下代码: string versionId = filename.Substring(filename.IndexOf("\\"), filename.LastIndexOf("\\")); 我可能也有目录名的文件名。如果是这种情况,如何从该字符串中获取数值?请尝试以下代码 string filename=@"filename\34\filename"; string[] lst=file
string versionId = filename.Substring(filename.IndexOf("\\"), filename.LastIndexOf("\\"));
我可能也有目录名的文件名。如果是这种情况,如何从该字符串中获取数值?请尝试以下代码
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);
使用正则表达式,但在输入格式不匹配时要小心:
string filename = @"filename\34\filename";
Console.WriteLine(new System.Text.RegularExpressions.Regex(@"^.*\\(\d*)\\.*$").Match(filename).Groups[1].Value);
如果您确信您的fileptah将具有静态格式,那么代码中的细微修改将为您提供精确的数值 请注意,仅当您具有以下文件位置格式时,此解决方案才有效: RootDrive\NumeriCvalue\Filename.extension 测试数据:
string filePath = @"C:\34\test.txt";
string filePath = @"D:\32344\word.docx";
代码
string versionId = filePath.Substring(filePath.IndexOf("\\")+1, filePath.LastIndexOf("\\")-3);
如果格式总是这样,只需拆分并获取值。否则,试试正则表达式。如何拆分?我用MSDN试过alsoStart:你是如何尝试拆分它的,出了什么问题?此外,您是否尝试过
Path
类中的方法?您当前的代码会发生什么情况?大概它不起作用,但它起什么作用呢?请显示一个简短但完整的程序来演示问题,描述实际和预期的输出。您确定所有字符串的格式都是filename\34\filename
?如果是,则可以使用字符串操作或正则表达式拾取数值。