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 パーサーの 1 つを使用することをお勧めします。たとえば、ジャカルタの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 に答える