正则表达式不 return 所有参数

Regex does not return all the argument

我尝试用我的正则表达式解析这样的表达式:

FIRST SECOND ARG1=$value ARG2="with space"

可以有任意数量的参数。

示例:HELLO VERSION MIN=$min MAX=$max USER="xxx" PASSWORD="yyy"

结果:HELLO - VERSION - PASSWORD - "yyy"

想要的结果:HELLO - VERSION - MIN - $min - MAX - $max - USER - "xxx" - PASSWORD - "yyy"

我的正则表达式是 ([\w\d]+) ([\w\d]+)(?: ([\w\d]+)=("[^"]*"|[^" ]*))*

不过,我并没有得到所有的参数,只有最后一个返回。我该如何解决?正则表达式太多了?

您可以先匹配引号之间的内容,然后再匹配其余内容。

(["].*?["])|([[:alnum:]_$]+)

测试here