假设我有字符串行,其中包含从文件中读取的自定义环境变量,这取决于操作系统:
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+)
应该为您提供所需的密码。