2017-05-11 23 views
-2
1. Metadata: 
    major_brand  : qt 
    minor_version : 512 
    compatible_brands: qt 
    encoder   : Lavf57.56.101 
    Duration: 01:49:36.75, start: 0.000000, bitrate: 1069 kb/s 
    Stream #0:0(eng): Video: h264 (High) (avc1/0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 935 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default) 
    Metadata: 
     handler_name : DataHandler 
     encoder   : Lavc57.64.101 libx264 
    Stream #0:1(eng): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default) 
    Metadata: 

在上面的字符串我只需要01包含真:49:36.75,如何得到的只有一個字「時間:」在一行代碼如何選擇字符串中的下一個字,如果字符串中使用C#

+3

使用'.Substring()'與'.IndexOf()' –

+0

整個代碼塊是一個字符串? –

+0

是的,它是一個完整的字符串 – krish

回答

1

假設s是你的字符串,而這些 '*' 是不存在的(我猜你添加的話):

string sDurationVal = s.Substring(s.IndexOf("Duration") + 9).Split(',')[0].Trim(); 
  • 使用子串IndexOf刪除字符串的第一部分,以便新字符串以所需的值開始。
  • 拆分結果由','取第一個單元格。
  • 修剪它刪除不必要的空間。
+0

謝謝你... – krish

+0

當然,注意你必須驗證字符串「持續時間」(區分大小寫)確實存在。 – Mockingbird

0

你應該使用Regex類來找到你要找的東西。 正則表達式使用Regular Expression Language

Regex rx = new Regex(@"Duration\:\s*([\d\.]+)\,",RegexOptions.Compiled | RegexOptions.IgnoreCase); 
Console.WriteLine(rx.Matches("Your String")[0].Groups[0].Value); 

欲瞭解更多信息,您可以點擊這裏:沿https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx

正則表達式比其他方法,如拆分或可靠的IndexOf ...

0

利用.Substring().IndexOf()

string s2 = s.Substring(s.IndexOf("Duration:")+9,12).Trim(); 
相關問題