2013-12-17 79 views
1

我試圖實現命令解析器來將命令參數解析爲鍵值對列表。 例如,有一個命令輸出圖像:[name]_w[width]_h[height]_t[transparency],比如說「image01_w64_h128_t90」,程序會輸出具有指定大小和透明度的圖像「image01」,到目前爲止我正在使用正則表達式來解決它。如何使用正則表達式構建命令解析器

代碼:

這樣的工作和代碼是很容易的。但是,如果參數順序發生改變,比如說「image01_h128_w64_t90」或「image01_t90_w64_h128」,則程序也可以輸出預期結果。

  1. 使用正則表達式可以解決問題嗎?
  2. 如果正則表達式無能爲力,還有其他建議嗎?

感謝您的任何建議,編輯和查看。

+4

我真的不會使用正則表達式,簡單的參數foreach是相當不夠的,我想。 – Tony

回答

0

只要做string.split('_')然後遍歷數組,以找到你需要的一切。

if(arr[i].startswith("w")) 
{ 
paramList["width"] = arr[i].remove(0,1); 
} 

等等。

+0

我必須說你是對的,現在我正在用類似的方式來處理它,謝謝@woutervs。 – Chris