2014-12-09 2 views
-1

У меня есть строка типа filename \ 34 \ filename Мне просто нужно числовое значение для разделения. что я могу сделать?Подстрока строки

Я использовал следующий код:

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

I может иметь имя файла с именем каталога также. Если это так, то как я могу получить числовое значение из этой строки?

+2

Если формат всегда будет таким, просто разделите и получите значение. Еще раз попробуйте Regex. –

+0

Как разбить? Я попробовал это также – kartikasi

+0

Начать с MSDN: http://msdn.microsoft.com/en-us/library/system.string.split%28v=vs.110%29.aspx –

ответ

0

попробовать следующий код

string [email protected]"filename\34\filename"; 
string[] lst=filename.Split('\\'); 
int version=-1; 
foreach(var i in lst) 
{ 
    try 
    { 
     version= int.Parse(i); 
    } 
    catch{}     
} 
Console.WriteLine(version); 
0

Использование регулярных выражений, но будьте осторожны, когда входной формат не соответствует:

string filename = @"filename\34\filename"; 
Console.WriteLine(new System.Text.RegularExpressions.Regex(@"^.*\\(\d*)\\.*$").Match(filename).Groups[1].Value); 
0

Если вы уверены, что ваш fileptah будет иметь статический формат, то Слай изменение вашего кода даст вам точное числовое значение.

Пожалуйста, обратите внимание, что это решение будет работать только если вы следующий формат местоположения файла:

RootDrive \ NumeriCvalue \ Filename.Extention

Тестовые данные:

string filePath = @"C:\34\test.txt"; 
string filePath = @"D:\32344\word.docx"; 

Треска e

string versionId = filePath.Substring(filePath.IndexOf("\\")+1, filePath.LastIndexOf("\\")-3); 
Смежные вопросы