用于解析环境变量的 Java 正则表达式(unix、win)



假设我有字符串行,其中包含从文件中读取的自定义环境变量,这取决于操作系统:

Linux(必须用引号引起来,用户通行证中包含"):

MY_ARGS="-DusePassword=true -Dpassword=pa"ss">

(不带引号)

MY_ARGS=-DusePassword=true -Dpassword=pa"ss

(不带引号,中间有密码)

MY_ARGS=-DusePassword=true -Dpassword=pa"ss -Duser=somebody

我需要将 -Dpassword 的值放入一个组中,并将标题和后续文本放入其他组。我无法找到正确的正则表达式模式来实现此目的。参数的位置无关紧要,因此可以切换它们。可能还有更多的争论。

所需结果如下所示:

  • 组[1] = MY_ARGS="-DusePassword=true -Dpassword=
  • 组[2] = PA"SS
  • group[3] = " (对于窗口为空,或填充后面的文本 密码值)

看起来很简单。 脱掉MY_ARGS=. 然后,如果字符串以引号开头,则必须以引号结尾,您也可以去掉这两个。

现在,您应该只剩下:

...before-text... -Dpassword=pa"ss" ...after-text...

正则表达式-Dpassword=(S+)应该为您提供所需的密码。

最新更新