Java 正则表达式从控制台命令获取标志?

Java 正则表达式从控制台命令获取标志?,java,regex,console,flags,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)(?:(?=")(?:(?:")([^"\\]*(?:\\.[^"\\]*)*)(?

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

 command -aparam -b"Another \"quoted\" param" -canother one here
并捕获数据:

a  param
b  Another "quoted" param
c  another one here
以下是我迄今为止的Java正则表达式:

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

(?建议使用一个可用的CLI解析器。例如,来自雅加达,或者更好,使用
split
方法将字符串标记为命令及其参数

String input = "command -aparam -b\"Another \"quoted\" param\" -canother one here ";
String[] cmds = input.split("\\s*-(?=\\w)");

我想如果你只是按空格分割并检查字符串的开头,对你来说会更容易。如果你将来要添加另一个选项,我想会有点困难……好吧,这就是诀窍。它不能寻找特定的“选项,”它必须找到任何-\w后跟一个值,然后获得标志和值。谢谢,但这不是我想要的。我真的很想有一个正则表达式。