![Bash 组匹配](https://linux22.com/image/85650/Bash%20%E7%BB%84%E5%8C%B9%E9%85%8D.png)
我正在使用 bash 3.1.17(1)-release 和下面的脚本。它不显示输入的组匹配,即 4fwk2_dev 2fwk5_dev
echo $FWK
FWK_REGEX="/(\d{1,3})fwk(\d)_dev/"
if [[ $FWK =~ $FW_REGEX ]]; then
echo ${BASH_REMATCH[0]}
fi
输出
4fwk2_dev 2fwk5_dev
我希望它能匹配 4,如果我添加 的话,也能匹配 2 echo ${BASH_REMATCH[1]}
。如果我将g
(全局)添加到正则表达式,那么希望它能够处理4fwk2_dev
和2fwk5_dev
。
答案1
这似乎有效:
echo $FWK
FWK_REGEX="([0-9]{1,3})fwk([0-9])_dev"
if [[ $FWK =~ $FWK_REGEX ]]; then
echo ${BASH_REMATCH[0]}
fi
我已经替换了正则表达式并更正了变量名称中的拼写错误。
不过,我有 Bash 4.3.42(1),所以 YMMV。