基本上,我需要像这样拆分字符串
"one quoted argument" those are separate arguments "but not \"this one\""
得到参数列表
- “一个引用的论点”
- 那些
- 是
- 分离
- "但不是\"这个\""
这个正则表达式"(\"|[^"])*"|[^ ]+
几乎可以完成这项工作,但问题是正则表达式总是(至少在 java 中)试图匹配可能的最长字符串。
因此,当我将正则表达式应用于以带引号的参数开头和结尾的字符串时,它会匹配整个字符串并且不会为每个参数创建一个组。
有没有办法调整这个正则表达式或匹配器或模式或任何处理它的方法?
注意:不要告诉我我可以使用GetOpt
或CommandLine.parse
其他类似的东西。
我担心的是纯 Java 正则表达式(如果可能,但我对此表示怀疑......)。