0

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

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

并捕获数据:

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

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

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

但它还没有完全奏效。有什么建议么?

4

2 回答 2

1

建议是使用可用的 CLI 解析器之一。例如来自 Jakarta的CLI ,或者更好的是args4j

于 2012-05-31T06:42:48.757 回答
0

split使用方法将字符串标记为命令及其参数,

String input = "command -aparam -b\"Another \"quoted\" param\" -canother one here ";
String[] cmds = input.split("\\s*-(?=\\w)");
于 2012-05-31T06:48:32.303 回答