2013-12-17 41 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