2011-04-13 28 views
5

'un belirli bölümünün ayıklanmasıyla ilgili yardım isteme Bir dizeden belirli bilgileri çıkarmaya çalışıyorum. Dize "Name: music mix.mp3 Size: 2356KB" gibi görünüyor. Dosya adını sadece uzantı ile çıkarmak istiyorum. Regex konusunda fazla bilgim yok, bu yüzden burada biraz yardım almayı umuyordum. Teşekkürler!Bir String

+1

değil Accpet oranının yanı :) senin örnekte –

+0

, çok bilgi dosya adı "müzik mix.mp3" dır için? –

+0

Evet öyle. Bu bir liste kutusu öğesi btw – Ravana

cevap

13

bu örneği kontrol edin: dosyanın adı boşluk ile ise

const string str = "Name: music mix.mp3 Size: 2356KB"; 
var match = Regex.Match(str, "Name: (.*) Size:"); 
Console.WriteLine("Match: " + match.Groups[1].Value); 
+0

+1. demir atmaya başlamak için bir '^' ekleme değerinde olabilir; regex'i daha verimli hale getirir. – Spudley

1

Bu

Name:\s*(?<FileName>[\w\s]+.\w{3}) 

bu grupta müzik mix.mp3 iade REGEX regex olduğunu

 string strRegex = @"Name:\s*(?<FileName>[\w\s]+.\w{3})"; 

     Regex myRegex = new Regex(strRegex); 
     string strTargetString = @"Name: music mix.mp3 Size: 2356KB"; 

     Match myMatch = myRegex.Match(strTargetString); 

     string fileName = myMatch.Groups["FileName"].Value; 
     Console.WriteLine(fileName); 
2

Regex lookaround özelliğini kullanan çözüm.

String sourcestring = "Name: music mix.mp3 Size: 2356KB"; 
Regex re = new Regex(@"(?<=^Name:).+(?= Size:)"); 
Match m = re.Match(sourcestring); 
Console.WriteLine("Match: " + m.Groups[0].Value); 

Example code here

İlgili konular