zsh替换,反向下标(r标志),如何使用正则表达式

zsh替换,反向下标(r标志),如何使用正则表达式,zsh,Zsh,我想用反向订阅解析ZSH sript中的参数。在《ZSH指南》第5章“替换”中,从示例中可以看出可以使用正则表达式:print${array[(r)s*]}。我想用正则表达式测试组装反向订阅,如下例所示: if [[ ${ARGS[(r)--opt=?.*]} =~ "--opt=?.*" ]] ; then # some stuff fi 我已经做了测试,似乎只有通配符“*”在反向订阅中起作用。这里的正则表达式仅适用于“测试”部分。我使用zsh/regex模块(POSIX扩展正则表达

我想用反向订阅解析ZSH sript中的参数。在《ZSH指南》第5章“替换”中,从示例中可以看出可以使用正则表达式:
print${array[(r)s*]}
。我想用正则表达式测试组装反向订阅,如下例所示:

if [[ ${ARGS[(r)--opt=?.*]} =~ "--opt=?.*" ]] ; then
    # some stuff
fi
我已经做了测试,似乎只有通配符“*”在反向订阅中起作用。这里的正则表达式仅适用于“测试”部分。我使用zsh/regex模块(POSIX扩展正则表达式)


regex可以与ZSH的反向订阅一起使用吗?如果是的话,你是怎么做到的?

那不是一个正则表达式;它是一种模式,匹配
s
,后跟0个或更多任意字符。它不匹配0或更多
s
s。好的,在反向订阅中似乎不可能使用正则表达式。这不是正则表达式;它是一种模式,匹配
s
,后跟0个或更多任意字符。它与0或更多
s
s不匹配。好的,在反向订阅中似乎不可能使用正则表达式。