gpt4 book ai didi

java - 如何拆分像字符串这样的命令行?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:38 26 4
gpt4 key购买 nike

基本上,我需要像这样拆分字符串

"one quoted argument" those are separate arguments "but not \"this one\""

得到参数列表的结果

  • “一个引用的论点”
  • 那些
  • 分开
  • “但不是\”这个\“”

这个正则表达式 "(\"|[^"])*"|[^ ]+ 几乎完成了工作,但问题是正则表达式总是(至少在 java 中)尝试匹配可能的最长 字符串。

因此,当我将正则表达式应用于以引号参数开头和结尾的字符串时,它会匹配整个字符串并且不会为每个参数创建一个组。

有没有办法调整这个正则表达式或 matcherpattern或者用什么来处理?

注意:不要告诉我我可以使用 GetOptCommandLine.parse 或任何其他类似的东西。
我担心的是纯 Java 正则表达式(如果可能,但我对此表示怀疑......)。

最佳答案

您可以使用非贪婪限定符 *? 使其工作:

"(\\"|[^"])*?"|[^ ]+

有关实际示例,请参阅此链接:http://gskinner.com/RegExr/?32srs

关于java - 如何拆分像字符串这样的命令行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com