2009-11-23 4 views
1

나는이 다음과 같은 파일 이름 :파일 이름 분할 - 하위 문자열?

SCO_InsBooking_1.pdf

SCO_InsBooking_10.pdf

SCO_InsBooking_100.pdf

SCO_InsBooking_1000.pdf

I 사용하여 파일 이름을 읽기에서는 FileInfo하고 싶어 그래서 나는 1, 10, 100 또는 1000 숫자를 얻습니다. 어떻게 이것을 얻을 수 있습니까?

답변

5

사용하여 정규 표현식 :

string number = Regex.Match("SCO_InsBooking_1000.pdf", @"\d+").Value; 

다른 번호가 파일 이름에 존재 없다고 가정.

4
filename = filename.Substring(filename.lastIndexOf("_")+1); 
filename = filename.Substring(0, filename.indexOf(".")); 

은 또한 물론

filename = Regex.Replace(filename, "_(\d+).pdf$", "$1"); 
1
string number = "SCO_InsBooking_1.pdf".split('_')[2].split('.')[0]; 

, 그것은 인덱스 예외를 방지하기 위해 검사를 몇 가지 경계에 더 좋을 것이다.

+0

+1(), 교과서 사용 시나리오를 IMO. – Mizipzor

0

당신은 정규 표현식으로이 작업을 수행 할 수 있습니다

Regex.Match(filename, @".*_(\d+).pdf").Groups[1].Value 
0

당신하려면 string.replace을 사용할 수 있습니다() 분할에 대한

using System.Collections.Generic; 

namespace strings1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      List<string> names = new List<string> { 
       "SCO_InsBooking_1.pdf", 
       "SCO_InsBooking_10.pdf", 
       "SCO_InsBooking_100.pdf", 
       "SCO_InsBooking_1000.pdf" }; 

      List<string> numbers = new List<string>(); 
      foreach (string item in names) 
      { 
       numbers.Add(item.Replace("SCO_InsBooking_", string.Empty).Replace(".pdf",string.Empty)); 
      } 
     } 
    } 
}