2014-02-05 73 views
0

我有一個由ffmpeg生成的視頻文件的元數據文本。使用ffmpeg和正則表達式獲取視頻的'位置'

Metadata: 
    major_brand  : qt 
    minor_version : 0 
    compatible_brands: qt 
    creation_time : 2011-09-10 21:44:22 
    model   : iPhone 4 
    model-deu  : iPhone 4 
    encoder   : 4.3.5 
    encoder-deu  : 4.3.5 
    date   : 2011-09-10T17:44:22-0400 
    date-deu  : 2011-09-10T17:44:22-0400 
    location  : +40.7329-073.9864/ 
    location-deu : +40.7329-073.9864/ 
    make   : Apple 
    make-deu  : Apple 

什麼正則表達式我需要寫,如果我想獲得「位置」從以上文字值。我正在使用C#。

+0

您是否認爲要爲所有標籤提問? http://stackoverflow.com/questions/21572221/get-creation-time-of-video-using-ffmpeg-and-regex –

回答

0

嘗試使用下一個正則表達式:

location\s*:\s*(+\d+\.\d+-\d+.\d+\/) 

子模式返回的位置

或者試試這個:

location\s*:\s*(\+\d+\.\d+-\d+.\d+\/) 
+0

也許你應該改變'creation_time'標籤@Victor –

+1

是的,需要改成'位置' –

+0

例外:解析「location \ s *:\ s *(+ \ d + \。\ d + - \ d +。\ d + \ /)」 - 量詞{x,y} @Victor –

0

你需要使用的模式應該是:

location[ ]+:[ ]+([0-9+-\.)\/

這應該適用於任何正則表達式引擎。獲得座標後,跳過第一個符號(加號或減號)並拆分第二個符號。

維克多的答案是很重要的兩點幾乎正確的:

  • 並非所有的正則表達式引擎都支持\ S
  • 的位置可能與負開始,可能含有較少的數字; -40 + 73是與上述答案不符的有效位置。
相關問題