2012-04-24 1 views
4

이 파일 이름의 숫자 부분을 추출하려고합니다. "이름, lastname_123456_state_city.pdf"Indexof with C#

내가 가지고 여기까지 ..

idstring = file.Substring(file.IndexOf("_") + 1, 
    (file.LastIndexOf("_") - file.IndexOf("_") - 1)); 
+1

윌 번호를 사용할 수있을? Split on _을 사용하여 배열 – Sparky

답변

6

이 정규식이 더 좋을 수도 이러한 경우 중 하나입니다

_(\d+)_ 

그리고, 여기에 어떻게 당신은 그것을 쓸 것입니다

string input = "Name, lastname_123456_state_city.pdf"; 
    string regexPattern = @"_(\d+)_"; 

Match match = Regex.Match(input, regexPattern, RegexOptions.IgnoreCase); 

if (match.Success) 
    string yourNumber = match.Groups[1].Value; 
+0

의 첫 번째 요소를 가져와 감사했습니다. –

0

정규 표현식을 사용하지 않는 이유는 무엇입니까? @"_([0-9]*)_"을 테스트하면 트릭을 수행해야합니다. 항상 첫 번째 대시 후

2
var firstUnderscore = file.IndexOf("_"); 
var nextUnderscore = file.IndexOf("_", firstUnderscore + 1); 
var idstring = file.Substring(firstUnderscore + 1, nextUnderscore - firstUnderscore - 1); 
+0

감사합니다. 나는 두 가지 대답을 고를 수 있었으면 좋겠다. –

0

당신은 System.Text.RegularExpressions.Regex

var regex = new Regex(@"^.*_(?<number>\d+)_.*\.pdf"); 
var idstring=regex.Match(file).Groups["number"].Value;