gpt4 book ai didi

java - 用于将命令行 Java 应用程序执行与 args 匹配的正则表达式

转载 作者:行者123 更新时间:2023-11-29 05:43:41 25 4
gpt4 key购买 nike

我绝对不熟悉正则表达式,所以最好问一下然后做一些非常愚蠢的事情。我有一个要从命令行执行的 Java 应用程序,它有一个非常好的签名。

java applicationName -mode=create -some.nice.arg=XXX.XXX.XXX.XXX:XXXX -another.nice.arg=value2 -third.nice.arg=value3 -again.nice.arg=value4 ... -nth.nice.arg=value_n+1

这将是所需的格式。好吧,至少足够接近。我正在尝试创建一个与此匹配的正则表达式,并会选择如下参数字段:

  • 模式=创建
  • some.nice.arg=XXX.XXX.XXX.XXX:XXXX
  • another.nice.arg=value2
  • third.nice.arg=value3
  • again.nice.arg=value4
  • ...
  • nth.nice.arg=value_n+1

例如,我可以为 IP 地址创建一个正则表达式,但我无法创建一个可以匹配所有内容的正则表达式。到目前为止,我最好的选择是:

\w+[ ]{1}\w+[ ]{1}[-]{1}(\w+[=]{1}\w+){+}

很多问题。例如\w+ 不会匹配 '.'字符,但它们肯定会在那里。或者另一个例子: mode 可以有以下选项之一:

  • 创建
  • 更新
  • 清楚

我什至在第一个问题上都被击中了,更不用说第二个了。

感谢您的帮助! - 乔伊

最佳答案

解决这个问题的正确方法是使用命令行界面库,例如Commons CLI .使用这些库,您可以为您的应用程序定义参数,该库将根据此验证输入(即您的 String[] args)。

大多数 CLI 库都可以处理高级概念,例如可选参数、标志、多部分参数等。它们还可以用于为您的用户打印有用的用法消息。查看一些 examples here .

一旦您使用了这样的库来收集参数,您就可以使用正则表达式(如有必要)分别验证每个部分。

关于java - 用于将命令行 Java 应用程序执行与 args 匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16585734/

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