我试图在 bash 中捕获路径的一部分:
输入:/Users/foo/.virtualenvs/venv-test-server
代码:
#!/bin/zsh
regex="^.*\/venv-(.*)$"
if [[ $VIRTUAL_ENV =~ $regex ]] ; then
echo "Matched!"
echo ${BASH_REMATCH[1]}
fi
输出:匹配!
但是没有打印匹配项。为什么?
最佳答案
脚本指定 zsh
而不是 bash
:
#!/bin/bash
^^^^
如果你想使用zsh
,你需要在使用=~
之前设置BASH_REMATCH
选项:
setopt KSH_ARRAYS BASH_REMATCH
关于regex - BASH_REMATCH 不捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31695600/