REGEX从控制台命令获取标志?

时间:2012-05-31 06:36:22

标签: java regex console flags

我正在尝试获取一个可以拉出字符串中的标志和值的正则表达式。基本上,我需要能够采用这样的字符串:

 command -aparam -b"Another \"quoted\" param" -canother one here

捕获数据:

a  param
b  Another "quoted" param
c  another one here

到目前为止,这是我的Java正则表达式:

(?<= -\w)(?:(?=")(?:(?:")([^"\\]*(?:\\.[^"\\]*)*)(?="))|.*?( -\w|$))?

但是还不行。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

建议使用一个可用的CLI解析器。例如来自雅加达的CLI或更好的args4j

答案 1 :(得分:0)

使用split方法

将字符串标记为命令及其参数
String input = "command -aparam -b\"Another \"quoted\" param\" -canother one here ";
String[] cmds = input.split("\\s*-(?=\\w)");