正则表达式不 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
我尝试用我的正则表达式解析这样的表达式:
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